Python進(jìn)程間通信multiprocess代碼實(shí)例
仔細(xì)說(shuō)來(lái),multiprocess不是一個(gè)模塊而是python中一個(gè)操作、管理進(jìn)程的包。 之所以叫multi是取自multiple的多功能的意思,在這個(gè)包中幾乎包含了和進(jìn)程有關(guān)的所有子模塊。由于提供的子模塊非常多,為了方便大家歸類記憶,我將這部分大致分為四個(gè)部分:創(chuàng)建進(jìn)程部分,進(jìn)程同步部分,進(jìn)程池部分,進(jìn)程之間數(shù)據(jù)共享。重點(diǎn)強(qiáng)調(diào):進(jìn)程沒(méi)有任何共享狀態(tài),進(jìn)程修改的數(shù)據(jù),改動(dòng)僅限于該進(jìn)程內(nèi),但是通過(guò)一些特殊的方法,可以實(shí)現(xiàn)進(jìn)程之間數(shù)據(jù)的共享。
有了之前多線程使用以及線程間queue的基礎(chǔ),多進(jìn)程以及進(jìn)程間通信就很好理解了,下面是多進(jìn)程基本語(yǔ)法以及進(jìn)程間通信簡(jiǎn)單示例
#多進(jìn)程基本語(yǔ)法 import multiprocessing, time, os def process_test(): time.sleep(3) print("my multiprocessing test") print("my pprocess id is",os.getppid()) print("my process id is",os.getpid()) if __name__ == '__main__': #多線程必須寫在if __name__后面,為什么??? process = multiprocessing.Process(target=process_test) #啟動(dòng)子進(jìn)程 process.start() #多進(jìn)程間數(shù)據(jù)通信,多進(jìn)程的queue實(shí)際上是python將一個(gè)queue序列化后再反序列化給其它進(jìn)程 #定義一個(gè)函數(shù),第一個(gè)形參傳遞一個(gè)進(jìn)程queue def m_queue_test(Queue, name): Queue.put(("multiprocess queue test",name)) #put一次只能傳遞一個(gè)數(shù)據(jù)對(duì)象,多個(gè)對(duì)象必須使用列表 元組 字典等傳遞 if __name__ == '__main__': q = multiprocessing.Queue() #主進(jìn)程實(shí)例化一個(gè)進(jìn)程queue process2 = multiprocessing.Process(target=m_queue_test, args=(q, "zsq")) #將q傳遞給子進(jìn)程,由子進(jìn)程往里面?zhèn)鬟f數(shù)據(jù) process2.start() print(q.get())#主進(jìn)程從queue里面讀數(shù)據(jù)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python隊(duì)列、進(jìn)程間通信、線程案例
- Python進(jìn)程間通信 multiProcessing Queue隊(duì)列實(shí)現(xiàn)詳解
- Python進(jìn)程間通信Queue消息隊(duì)列用法分析
- Python RabbitMQ實(shí)現(xiàn)簡(jiǎn)單的進(jìn)程間通信示例
- Python進(jìn)程的通信Queue、Pipe實(shí)例分析
- Python通過(guò)4種方式實(shí)現(xiàn)進(jìn)程數(shù)據(jù)通信
- python進(jìn)程間通信Queue工作過(guò)程詳解
- python多進(jìn)程間通信代碼實(shí)例
- Python通過(guò)隊(duì)列來(lái)實(shí)現(xiàn)進(jìn)程間通信的示例
相關(guān)文章
python文件操作seek()偏移量,讀取指正到指定位置操作
這篇文章主要介紹了python文件操作seek()偏移量,讀取指正到指定位置操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07Pytorch實(shí)現(xiàn)簡(jiǎn)單自定義網(wǎng)絡(luò)層的方法
這篇文章主要給大家介紹了關(guān)于Pytorch實(shí)現(xiàn)簡(jiǎn)單自定義網(wǎng)絡(luò)層的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-05-05解決python replace函數(shù)替換無(wú)效問(wèn)題
在本篇文章里小編給大家整理的是一篇關(guān)于python replace函數(shù)替換無(wú)效問(wèn)題的解決方法,需要的朋友們可以參考下。2020-01-01Tensorflow 同時(shí)載入多個(gè)模型的實(shí)例講解
今天小編就為大家分享一篇Tensorflow 同時(shí)載入多個(gè)模型的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Python實(shí)現(xiàn)在PyPI上發(fā)布自定義軟件包的方法詳解
在Python中我們經(jīng)常使用pip來(lái)安裝第三方Python軟件包,其實(shí)我們每個(gè)人都可以免費(fèi)地將自己寫的Python包發(fā)布到PyPI上。本文我們就將詳細(xì)介紹如何發(fā)布測(cè)試包,需要的可以參考一下2022-06-06python用700行代碼實(shí)現(xiàn)http客戶端
這篇文章主要介紹了python用700行代碼實(shí)現(xiàn)http客戶端的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-01-01Keras load_model 導(dǎo)入錯(cuò)誤的解決方式
這篇文章主要介紹了Keras load_model 導(dǎo)入錯(cuò)誤的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06python如何為list實(shí)現(xiàn)find方法
這篇文章主要介紹了python如何為list實(shí)現(xiàn)find方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05