from multiprocessing import Manager,Pool
import random ,time,os
def write(q):
for i in range(10):
q.put(i)
print("正在添加=====%d====到queue "%i)
time.sleep(1)
def read(q):
for i in range(q.qsize()):
value=q.get(True)
print("正在从queue取数据,数据为=====%d==== " %value)
time.sleep(1)
if __name__=='__main__':
q=Manager().Queue() #队列对象要用 这个创建
pool=Pool() # 线程池
pool.apply(write,args=(q,)) # 用阻塞的形式,阻塞的概念请看之前的
pool.apply(read, args=(q,)) # 添加进程任务
pool.close() # 关闭线程池
pool.join() # 等待完成
打印结果:
正在添加=0到queue
正在添加=1到queue
正在添加=2到queue
正在添加=3到queue
正在添加=4到queue
正在添加=5到queue
正在添加=6到queue
正在添加=7到queue
正在添加=8到queue
正在添加=9到queue
正在从queue取数据,数据为=0
正在从queue取数据,数据为=1
正在从queue取数据,数据为=2
正在从queue取数据,数据为=3
正在从queue取数据,数据为=4
正在从queue取数据,数据为=5
正在从queue取数据,数据为=6
正在从queue取数据,数据为=7
正在从queue取数据,数据为=8
正在从queue取数据,数据为=9