程序池之間通訊 python 實現

2021-10-07 20:34:03 字數 841 閱讀 9889

程序池間的通訊:

使用語句:multiprocessing.manger().queue()

步驟:1.建立佇列通訊

2.建立程序池

3.給程序池新增任務,任務函式的引數為佇列通訊

4.程序池關閉不再接受其他任務

5.阻塞主線程

import multiprocessing

defmain()

:#1.建立佇列通訊

queue = multiprocessing.manager(

).queue(

)#2.建立程序池

pool = multiprocessing.pool(3)

#3.給程序池新增任務,任務函式的引數為佇列通訊

(queue,))

(queue,))

pool.close(

) pool.join(

)def

demo1

(queue)

: queue.put(

'11'

)print

('-----1------'

)def

demo2

(queue)

:#l = queue.get()

print

('-----2------'

)print

(queue.get())

if __name__ ==

'__main__'

: main(

)

執行結果:

-----1------

-----2------

11

程序之間通訊

之所以開啟子程序 肯定需要他幫我們完成任務,很多情況下,需要將資料返回給父程序。然而程序記憶體是物理隔離的 1.將共享資料放在檔案中,就是慢 2.管道subprocess 中那個管道只能單向通訊,必須有父子關係 3.共享一塊記憶體區域 得作業系統幫你分配,速度快 from multiprocessi...

python 程序 Python程序池

當需要建立的子程序數量不多時,可以直接利用multiprocessing中的process動態成生多個程序,但如果是上百甚至上千個目標,手動的去建立程序的工作量巨大,此時就可以用到multiprocessing模組提供的pool方法。初始化pool時,可以指定乙個最大程序數,當有新的請求提交到poo...

Python 程序,程序池

注意 程序池中的程序如果發生異常時,主程序中並不會得到異常提示。如果程序池中的程序要使用佇列 queue 實現程序間通訊,必須使用queue multiprocessing.manager queue 的方式建立佇列 需要先導入multiprocessing模組 demo.py 程序池 coding...