知行编程网知行编程网  2022-12-26 10:00 知行编程网 隐藏边栏  7 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python进程之间如何通信的相关知识,包括java进程间通信,以及python进程间通信共享内存这些编程知识,希望对大家有参考作用。

python进程之间如何通信


本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。


1、思路

进程之间必须要有通信,操作系统提供了很多机制来实现进程间通信。 Python 的 multiprocessing 模块对底层机制进行了封装,提供了 Queue、Pipes 等方式来交换数据。


2、实例

以Queue为例,在父进程中创建了两个子进程,一个向Queue写入数据,一个从Queue中读取数据。

from multiprocessing import Process, Queue
import os, time, random
 
# 写数据进程执行的代码:
def write(q):
    print('Process to write: %s' % os.getpid())
    for value in ['A', 'B', 'C']:
        print('Put %s to queue...' % value)
        q.put(value)
        time.sleep(random.random())
 
# 读数据进程执行的代码:
def read(q):
    print('Process to read: %s' % os.getpid())
    while True:
        value = q.get(True)
        print('Get %s from queue.' % value)
 
if __name__=='__main__':
    # 父进程创建Queue,并传给各个子进程:
    q = Queue()
    pw = Process(target=write, args=(q,))
    pr = Process(target=read, args=(q,))
    # 启动子进程pw,写入:
    pw.start()
    # 启动子进程pr,读取:
    pr.start()
    # 等待pw结束:
    pw.join()
    # pr进程里是死循环,无法等待其结束,只能强行终止:
    pr.terminate()

以上就是python进程之间通信的方法,希望能对大家有所帮助。

更多Python学习指路:

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享