zoukankan      html  css  js  c++  java
  • python--pipe

    1.pipe

    除了使用队列外,还可以使用管道在进程间执行消息传递
    pipe([]duplex)
    在进程间创建一条管道,并返回元组(conn1,conn2),其中conn1和conn2是表示管道两端的Connection对象。默认控制下管道是双向的。如果将duplex设为False,conn1只能接受,conn2只能用于发送。

    2.code

    import multiprocessing  
      
    def consumer(pipe):  
        output_p,input_p=pipe  
        input_p.close()  
        while True:  
            try:          
                item=output_p.recv()  
            except EOFError:  
                break  
            print(item)  
        print('Consumer done')  
          
    def producer(sequence,input_p):  
        for item in sequence:  
            #将项放入队列  
            input_p.send(item)  
              
      
    if __name__=='__main__':  
        (output_p,input_p)=multiprocessing.Pipe()  
        '''''running consumer processing'''  
        consumer_p=multiprocessing.Process(target=consumer,args=((output_p,input_p),))  
        consumer_p.start()  
          
        #关闭生产者中管道  
        output_p.close()  
        '''''producing many Queues,run producer'''  
        sequence=[1,2,3,4,5]  
        producer(sequence,input_p)  
        input_p.close()  
        '''''waiting processing'''  
        consumer_p.join()
    

    应该特别注意管道端点的管理问题。如果生产者与消费者都没有使用管道某个端点就应该将其关闭,这就是为什么我们把生产者的输出管道关闭,并且把消费者的输入端关闭的原因。

  • 相关阅读:
    Magento交易邮件常见问题
    Magento谷歌分析设置
    magento SEO优化设置
    飞凤平台示范项目
    工厂生产线测量仪器的数据下发
    某外资汽车部件工厂车床联网系统
    行云仓库管理系统的概述
    arm v5,v6,v7?
    前端开发收藏夹
    mysql 事件
  • 原文地址:https://www.cnblogs.com/yangjing000/p/8205774.html
Copyright © 2011-2022 走看看