本文教程操作环境: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基础教程