• python Pipe 双管道通信


    管道:是python多进程中一种交换数据的方式

     1 from multiprocessing import Process,current_process,Queue,Pipe
     2 import time
     3 import pickle
     4 
     5 def func_left(q,left):
     6     for a in range(5000):
     7         b = q.get()#从队列中获取数据
     8         print('向右管道发送数据',b)
     9         msg = pickle.dumps(b)#给右管道发送数据 数据是序列化之后的数据
    10         # left.send(msg)#发送数据
    11         
    12 
    13 def func_right(q,right):
    14     for a in range(5000):
    15         #从队列中获取数据
    16         msg = pickle.loads(right.recv())#从右管道接受数据 数据是反序列化之后的数据
    17         print('接受到左管道发送的数据',msg)#打印出接受的数据
    18 
    19 
    20     
    21 
    22 
    23 def main():
    24     q = Queue()#新建立一个queue共享数据
    25     for a in range(10001):
    26         q.put(a)
    27     left,right = Pipe()#建立双管道
    28     p1 = Process(target = func_left,name = '左管道',args=(q,left))
    29     p2 = Process(target = func_right,name = '右管道',args=(q,right))
    30     p1.start()
    31     p2.start()
    32 
    33 
    34 if __name__ == '__main__':
    35     main()

    管道默认是阻塞状态,双通管道

       生命不息
       希望不止
       将来的你
       一定会感谢现在拼命的自己
       fighting!!!
  • 相关阅读:
    如何编写测试用例
    bug的合规描述
    Linux常用命令学习
    测试用列设计
    软件质量管理
    测试的分类
    软件工程模型
    软件测试核心概念
    Thinking in C++ 第十三章 动态对象创建
    python urllib
  • 原文地址:https://www.cnblogs.com/lonelyshy/p/9714806.html
Copyright © 2020-2023  润新知