导语:
本文主要介绍了关于python进程之间如何通信的相关知识,包括java进程间通信,以及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学习指路:
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python的sort()错误的原因是什么10/20
- ♥ 什么是python ide10/03
- ♥ Python如何检查ul下有多少li?11/03
- ♥ 为什么 Python 使用缩进?10/03
- ♥ 分享几个简单的python程序11/24
- ♥ 在python中拆分字符串10/07
内容反馈