版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
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()