from multiprocessing import Process
from multiprocessing import Queue
import time
import random
需求:
在父进程当中创建两个子进程,一个往Queue里写数据,一个从Queue里读取数据:
写操作
def write(q):
# 由于进程之间的通信只能通过队列来完成,
# 所以队列中最后一个元素"Exit"为退出读取进程的标志
for value in ['A','B','C','D','Exit']:
print('Put %s from Queue'%(value))
q.put(value)
time.sleep(random.random())
读操作
def read(q):
print('我要从队列当中读取数据了~')
while True:
if not q.empty():
value = q.get()
if value == 'Exit':
break
else:
print('Get %s from Queue'%(value))
time.sleep(random.random())
主函数
if __name__ == '__main__':
创建一个队列
q = Queue()
创建两个进程
pw = Process(target=write,args=(q,))
pr = Process(target=read,args=(q,))
启动
pw.start() #写入
# pw.join() #此时pw进程结束
pr.start()
# pr.join()
print('所有读写进程结束')