程序池間的通訊:
使用語句: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...