102-python-进程-管道

"""
    pipe:  -- ( 队列 = 管道 + 锁 )
# 数据不安全
# 可以加锁控制安全性

# 当管道全部关闭 只剩接收管道 时 并且没有 可以send 的内容
的时候会报一个 EOFError 的错误
@ 解决方案:
在处理异常时(try) 将管道(接收管道)全部关闭

# 主进程中的 conn1 会找到子进程中的 conn2
# 主进程中的 conn2 会找到子进程中的 conn1
"""
from multiprocessing import Pipe,Process

def fn(conn1,conn2):
    conn2.close()
    while True:
        try:
            msg = conn1.recv()
            print(msg)
        except EOFError:
            conn1.close()
            print('here')
            break

if __name__ == '__main__':
    conn1,conn2 = Pipe()
    p = Process(target=fn,args=(conn1,conn2))
    p.start()
    conn1.close()
    for i in range(10):
        conn2.send('hello')
    conn2.close()
posted @ 2018-11-20 12:00  _Q  阅读(98)  评论(0)    收藏  举报