import threading
import time
from queue import Queue
def job(l,q):
for i in range(len(l)):
l[i] = l[i]**2
q.put(l)
# return l 线程中不可以返回值
def multithreading():
q = Queue()
threads = []
data = [[1,2,3],[3,4,5],[4,4,4],[5,5,5]]
for i in range(4):
t = threading.Thread(target=job, args=(data[i],q)) # args是传入其他参数
t.start()
threads.append(t) # 将线程都加入到threads线程中
for thread in threads:
thread.join() # 将所有线程运行完
results = []
for _ in range(4):
results.append(q.get()) # 在q里面拿出来值
print(results)
if __name__ == '__main__':
multithreading()
由于线程中不可以返回值,所以这里会用queue来接收返回值。
以上代码是queue的一个简单实现。