from multiprocessing import Process , Queue, current_process
# Queue 共享数据队列 是类,使用时候要实例化
# 生产者和消费者模型,生产者负责在进程队列中赋值,消费者负责获取
# 创建生产者,为共享队列添加内容
def funcput(argq):
# 参数argq 是一个共享队列的实例对象
# 生产者为队列添加内容,使用Queue的put()方法
# 制作一个循环,放入10个数字
for x in range(10):
res = argq.put(x)
print("我是生产者,我放入了",res)
print(">>>>>>>>>")
# 创建消费者,从共享队列中获取内容
def funcget(argq):
# 参数argq 是一个共享队列的实例对象
# 消费者获取队列内容,使用Queue的get()方法
# 制作一个循环,获取十次
for x in range(10):
res = argq.get()
print("我是消费者,我获取了",res)
print("<<<<<<<<<<<<<")
# 设置主函数,将生产者和消费者作为主函数的子进程
def main():
# 实例化Queue
argq = Queue()
# 使用Process创建多进程
# 创建生产者子进程
p_put = Process(target=funcput,name="生产者",args=(argq,))
# 创建消费者子进程
p_get = Process(target=funcget,name="消费者",args=(argq,))
# 开启子进程
p_put.start()
p_get.start()
# 回收子进程
p_put.join()
p_get.join()
# 关闭共享队列
argq.close()
if __name__ == '__main__':
main()
0713py:Queue实现进程间通信
猜你喜欢
转载自blog.csdn.net/whqwjb/article/details/81041334
今日推荐
周排行