热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

利用Python管道实现父子进程间高效通信

使用 Python 中的管道进行父子进程间的通信原文:https://www . geesforgeks . org/commu

使用 Python 中的管道进行父子进程间的通信

原文:https://www . geesforgeks . org/communication-parent-child-process-use-pipe-python/

先决条件–在 Python 中创建子进程
由于计算机上同时运行多个进程,因此它们之间有适当的通信是非常必要的,因为一个进程可能依赖于其他进程。进程之间的通信有多种方法。这里有一个简单的 Python 程序,使用管道方法演示父进程和子进程之间的通信。

使用的库–
Python 中的操作系统模块:Python 中的操作系统模块提供了一种使用操作系统相关功能的方式。操作系统模块提供的功能允许您与运行 Python 的底层操作系统进行交互;无论是视窗、苹果还是 Linux。它可以作为–

import os

系统调用 Used–
pipe()系统调用: 方法 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


推荐阅读
author-avatar
wuqing0625
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有