队列操作案例

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

猜你喜欢

转载自blog.csdn.net/YPL_ZML/article/details/88539123