#进程间通信,队列
from multiprocessing import Process,Queue
import os,sys
import time
q=Queue()
def get(data):
time.sleep(2)
print("thread {} get {}".format(os.getpid(),data))
if __name__=="__main__":
start=time.time()
l=[]
for i in range(10):
p=q.put(i)
print(q.qsize(),os.getpid(),q.empty())
while True:
if q.empty() == False:
p=Process(target=get,args=(q.get(),))
l.append(p)
p.start()
else:
break
for i in l:
i.join()
end=time.time()
print(end-start)
10 12072 False
thread 7140 get 3
thread 14184 get 1
thread 4468 get 0
thread 15604 get 2
thread 12988 get 4
thread 7700 get 5
thread 17272 get 7
thread 10700 get 6
thread 13112 get 8
thread 15756 get 9
2.7655727863311768