在Python中使用管道在父子进程之间进行通信
先决条件 - 在Python中创建子进程
由于计算机上同时运行着许多进程,因此非常有必要在它们之间进行适当的通信,因为一个进程可能依赖于其他进程。进程之间有多种通信方法。这是一个简单的Python程序,用于演示使用管道方法在父进程和子进程之间进行通信。
使用的图书馆 –
Python中的 OS 模块: Python中的 OS 模块提供了一种使用操作系统相关功能的方法。 OS 模块提供的功能允许您与运行Python的底层操作系统进行交互;无论是 Windows、Mac 还是 Linux。它可以导入为 -
import os
使用系统调用 –
pipe() 系统调用:方法 pipe() 创建一个管道并返回一对可分别用于读取和写入的文件描述符 (r, w)。该方法返回一对文件描述符。
语法——以下是 pipe() 方法的语法——
os.pipe()
注意 –管道只是单向通信,即我们可以使用管道,一个进程写入管道,另一个进程从管道读取。
# Python code to demonstrate communication
# between parent and child process using
# python.
import os
def communication(child_writes):
# file descriptors r, w for reading and writing
r, w = os.pipe()
#Creating child process using fork
processid = os.fork()
if processid:
# This is the parent process
# Closes file descriptor w
os.close(w)
r = os.fdopen(r)
print ("Parent reading")
str = r.read()
print( "Parent reads =", str)
else:
# This is the child process
os.close(r)
w = os.fdopen(w, 'w')
print ("Child writing")
w.write(child_writes)
print("Child writes = ",child_writes)
w.close()
# Driver code
child_writes = "Hello geeks"
communication(child_writes)
# Contributed by "Sharad_Bhardwaj".
输出 :
Child writing
Child writes = Hello geeks
Parent reading
Parent reads = Hello geeks