pythonマルチスレッド取得関数の戻り値
8343 ワード
welcome to my blog
スレッドを作成する方法は2つあります.1.クラスをカプセル化し、そのクラスにthreadingを継承する.Threadクラス2.メソッド名とパラメータをThread()のコンストラクション関数に渡す.
クラスにカプセル化すると、サブスレッドの戻り値が取得されます.
具体例:4つのスレッドでそれぞれ4つのリストの要素の平方値を計算する
基礎知識、この小さな例を書く時自分の知識の抜け穴を発見しました
pythonの4の変数タイプ、原文リンク1、グローバル変数:モジュール内、すべての関数の外、classの外、これがグローバル変数です.2、局所変数:関数内、classのメソッド内(self修飾なし)、これが局所変数3、静的変数:class内であるがclassのメソッド内ではない、これが静的変数4、インスタンス変数:classのメソッド内でself修飾された変数であり、これがインスタンス変数である
スレッドを作成する方法は2つあります.1.クラスをカプセル化し、そのクラスにthreadingを継承する.Threadクラス2.メソッド名とパラメータをThread()のコンストラクション関数に渡す.
クラスにカプセル化すると、サブスレッドの戻り値が取得されます.
具体例:4つのスレッドでそれぞれ4つのリストの要素の平方値を計算する
import threading
import random
class MyClass(threading.Thread):
# woc, res???? python ! 666 : : class , class ,
# res = []
def __init__(self, arr):
super().__init__()
self.arr = arr
# res !
self.res = []
def calPow(self):
print(' :', threading.current_thread().getName())
for i in self.arr:
self.res.append(i*i)
def run(self):
self.calPow()
def getRes(self):
return self.res
def main():
# 4 5 list, 4 4 list
arrs = [[random.randint(1, 15) for x in range(5)] for x in range(4)]
jobs = []
print('
4 list:')
for i in range(4):
print(arrs[i])
# 4
print('
4 :')
for i in range(4):
t = MyClass(arrs[i])
jobs.append(t)
t.start()
result = []
#
print('
')
for t in jobs:
#
t.join()
#
result.append(t.getRes())
print('
:')
for i in result:
print(i)
if __name__ == '__main__':
main()
基礎知識、この小さな例を書く時自分の知識の抜け穴を発見しました
pythonの4の変数タイプ、原文リンク1、グローバル変数:モジュール内、すべての関数の外、classの外、これがグローバル変数です.2、局所変数:関数内、classのメソッド内(self修飾なし)、これが局所変数3、静的変数:class内であるがclassのメソッド内ではない、これが静的変数4、インスタンス変数:classのメソッド内でself修飾された変数であり、これがインスタンス変数である