0713py:Queue实现进程间通信

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()

猜你喜欢

转载自blog.csdn.net/whqwjb/article/details/81041334
今日推荐