Python進(jìn)程間通信multiprocess代碼實(shí)例
仔細(xì)說來,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)程沒有任何共享狀態(tài),進(jìn)程修改的數(shù)據(jù),改動(dòng)僅限于該進(jìn)程內(nèi),但是通過一些特殊的方法,可以實(shí)現(xiàn)進(jìn)程之間數(shù)據(jù)的共享。
有了之前多線程使用以及線程間queue的基礎(chǔ),多進(jìn)程以及進(jìn)程間通信就很好理解了,下面是多進(jìn)程基本語法以及進(jìn)程間通信簡(jiǎn)單示例
#多進(jìn)程基本語法
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通過4種方式實(shí)現(xiàn)進(jìn)程數(shù)據(jù)通信
- python進(jìn)程間通信Queue工作過程詳解
- python多進(jìn)程間通信代碼實(shí)例
- Python通過隊(duì)列來實(shí)現(xiàn)進(jìn)程間通信的示例
相關(guān)文章
python中class(object)的含義是什么以及用法
這篇文章主要介紹了python中class(object)的含義是什么以及用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
解讀殘差網(wǎng)絡(luò)(Residual Network),殘差連接(skip-connect)
這篇文章主要介紹了殘差網(wǎng)絡(luò)(Residual Network),殘差連接(skip-connect),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
Python中識(shí)別圖片/滑塊驗(yàn)證碼準(zhǔn)確率極高的ddddocr庫詳解
驗(yàn)證碼的種類有很多,它是常用的一種反爬手段,包括:圖片驗(yàn)證碼,滑塊驗(yàn)證碼,等一些常見的驗(yàn)證碼場(chǎng)景。這里推薦一個(gè)簡(jiǎn)單實(shí)用的識(shí)別驗(yàn)證碼的庫?ddddocr?(帶帶弟弟ocr)庫,希望大家喜歡2023-02-02
python 利用matplotlib在3D空間繪制二次拋物面的案例
這篇文章主要介紹了python 利用matplotlib在3D空間繪制二次拋物面的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02
Python跨文件全局變量的實(shí)現(xiàn)方法示例
我們?cè)谑褂肞ython編寫應(yīng)用的時(shí)候,有時(shí)候會(huì)遇到多個(gè)文件之間傳遞同一個(gè)全局變量的情況。所以下面這篇文章主要給大家介紹了關(guān)于Python跨文件全局變量的實(shí)現(xiàn)方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-12-12

