【代码】multiprocessing Pipe和os FIFO

multiprocessing模块 pipe配合Process

这种是全双工的,当然这里设置为半双工

import time, os
from multiprocessing import Process, Pipe

pread, pwrite = Pipe(False)

def f():
    i = 0
    while i<10:
    	# 子进程每次等待,并从管道挤出一次消息,只要有就能取出来,读完了还recv,阻塞了。。。。
        time.sleep(1)
        data = pread.recv()
        print(os.getppid(), 'send', data,'to', os.getpid())
        i += 1


p = Process(target=f)
p.start()

i = 0
while i<5:
	# 主进程立即、一股脑儿塞到管道里,当然也可以time.sleep(1),一次放一个,这样发送和子进程接收似乎就能同步
    pwrite.send(str(i))
    print(os.getpid(), 'sent')
    i += 1

# 顯send,最後再join
p.join()



os模块 FIFO配合os.fork()

FIFO也被称为有名管道(named pipe),使用mkfifo函数可以创建,是半双工的,参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值