两个进程之间的通讯——pipe 管道

Posted 吴增丁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个进程之间的通讯——pipe 管道相关的知识,希望对你有一定的参考价值。

在实际工作中,已经编辑好了NIPT_analysis的软件,该软件一般的输入文件是sam文件,但是为了集成进入测序仪器,需要直接从比对软件的标准输出中读取sam文件,省去了比对软件和NIPT_analysis的I/O时间。

问题来了,如何将这两个exe软件连接起来?原来两个exe程序就是两个进程,现在的问题就是如何实现这两个进程的通讯?

经查,进程之间的通讯有 共享内存、管道等方法。。。。。。。

找到一个较好的解决方案:通过管道pipe的方法。

为了直观,拿一个简单的例子:

有两个程序,一个是write.py,一个reads.py

write.py:

a = 0
while a < 5:
a += 1
print("####processing###")
b = 0
while b < 10:
print(b)
b += 1
print("####processdone####")

 

reads.py

import sys
import time
var = sys.stdin.readline()[0:-1]
while var:
var = sys.stdin.readline()[0:-1]
print(var)

在cmd用管道运行结果如下:

 

以上是关于两个进程之间的通讯——pipe 管道的主要内容,如果未能解决你的问题,请参考以下文章

IPC(进程间的通讯方式)

C# 两个进程之间通讯(管道通信 )

linux用户空间 - 多进程编程(三)

进程间通讯-2(pipe)

无名管道通讯编程

IPC进程间通讯之二管道Pipe