首页 > 自动化运维 > python > 进程间通信(一)
2015
11-18

进程间通信(一)

管道是一种半双工的通信机制,它一端用来读,另外一端用来写,遵循先进先出原则,并且数据只能被读取一次。

使用os.pipe() 函数

p[1] :写数据

p[0]  : 读数据

#coding=utf8
import os
import time
p = os.pipe()
pid = os.fork()
if pid == 0:
#在读取消息之前关闭写管道p[1]
        os.close(p[1])
        while True:
                msg = os.read(p[0],1024)
                print msg
                if msg == 'q':
#                       如果是q就关闭p[0]读管道,并退出循环
                        os.close(p[0])
                        break
else:
#在写消息之前关闭读管道p[0]
        os.close(p[0])
        while True:
                str1 = raw_input(">>")
                os.write(p[1],str1)
                if(str1 == 'q'):
                        os.close(p[1])
#                       等待子进程退出,在退出父进程
                        os.wait()
                        break
                time.sleep(1)

执行结构:

blob.png




最后编辑:
作者:tshare365
这个作者貌似有点懒,什么都没有留下。
捐 赠您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击

留下一个回复