import queue
import threading
import time
result=queue.Queue()
def haoshi(a):
func=a**2
time.sleep(5)
result.put(func)
def work(q):
resulist = []
theadlist=[]
while True:
for i in range(10):
if not q.empty():
todo = q.get()
t=threading.Thread(target=todo[0], args=(todo[1],))
t.start()
theadlist.append(t)
for i in theadlist:
i.join()
if q.empty():
break
for i in range(result.qsize()) :
resulist.append(result.get())
return resulist
def main(lista):
q=queue.Queue()
for i in lista:
print(i)
q.put([haoshi,i])
print("全部装入队列")
t1=time.time()
resulist=work(q)
t2=time.time()-t1
return resulist,t2
if __name__ == '__main__':
lista=list(range(20))
print(lista)
qq,t2=main(lista)
print(qq,t2)
转载请注明原文地址:https://blackberry.8miu.com/read-40769.html