Quene 功能主要解决利用线程的计算不能直接return的问题
一. 代码
import threading
import time
from queue import Queue
def job(l,q):
for i in range(len(l)):
l[i] = l[i]**2
return q.put(l) # 线程运行的结果不能直接return,所以我们把它的结果放在q中
def mutithreading():
q = Queue()
threads = []
data = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]
for i in range(4):
t = threading.Thread(target=job,args=(data[i],q))
t.start()
threads.append(t)
for thread in threads:
thread.join() # 加到主函数里,告诉主线程,这些线程结束了之后,主线程才能结束
results = []
for i in range(4):
results.append(q.get()) # 先前放到q中,现在我们从q中去取出来
print(results)
if __name__ == '__main__':
mutithreading()
二. 运行结果