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('所有读写进程结束')