当前位置: 首页 > 图灵资讯 > 行业资讯> python进程之间如何通信

python进程之间如何通信

来源:图灵python
时间: 2024-08-27 13:35:58

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

1、思路

Process之间必须有通信,操作系统为实现过程之间通信提供了许多机制。Python的multiprocessing模块包装了底层机制,并提供了Queue、交换数据的方式有很多,比如Pipes。

2、实例

以Queue为例,在父亲的过程中创建两个子过程,一个在Queue中写数据,另一个在Queue中读数据。

frommultiprocessingimportProcess,Queue
importos,time,random

#编写数据流程执行代码:
defwrite(q):
print('Processtowrite:%s'%os.getpid())
forvaluein['A','B','C']:
print('Put%stoqueue...'%value)
q.put(value)
time.sleep(random.random())

#读取数据过程中执行的代码:
defread(q):
print('Processtoread:%s'%os.getpid())
whileTrue:
value=q.get(True)
print('Get%sfromqueue.'%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基础教程