必要性
程序的建立和銷毀過程消耗的資源較多
當任務量眾多,每個任務在很短時間內完成時,需要頻繁的建立和銷毀程序。此時對計算機壓力較大
程序池技術很好的解決了以上問題。
原理
建立一定數量的程序來處理事件,事件處理完進 程不退出而是繼續處理其他事件,直到所有事件全都處理完畢統一銷毀。增加程序的重複利用,降低資源消耗。程序池實現
建立程序池物件,放入適當的程序
from multiprocessing import pool
pool(processes)
功能: 建立程序池物件
引數: 指定程序數量,預設根據系統自動判定
將事件加入程序池佇列執行
功能: 使用程序池執行 func事件
引數: func 事件函式
args 元組 給func按位置傳參
kwds 字典 給func按照鍵值傳參
返回值: 返回函式事件物件
關閉程序池
pool.close(
)功能: 關閉程序池
**程序池中程序
pool.join()
功能: **程序池中程序
from multiprocessing import pool
from time import sleep
defwork
(msg)
: sleep(2)
print
(msg)
pool = pool(6)
for i in
range(20
):msg =
"hello %d"
%i(msg,))
pool.close(
) pool.join(
)
Python併發程式設計之程序池
前言 本博文主要講解python併發程式設計中的程序池 pool python多程序中的multiprocessing python多程序中的fork python程序通訊之queue 當我們需要建立的子程序數量不多時,可以直接利用multiprocessing中的process動態成生多個程序,但...
併發程式設計 執行緒池與程序池
以時間換空間 程序池 乙個容器,這個容器限制住你開啟程序的數量,預設是os.cpu count 我的電腦是8核,所以能開啟8個,第一次肯定只能並行的處理8個任務,只要有任務完成,程序馬上就會接下乙個任務。實現 from concurrent.futures import processpoolexe...
併發程式設計之執行緒池,程序池
池 受限於硬體的發展,硬體跟不上軟體的發展 在保證計算機硬體安全的情況下,最大限度的利用了計算機 池其實是降低了程式的執行效率,但是保證了計算機硬體的安全 我們再使用程序和執行緒時,不可能無限制的去開程序或執行緒。因此我們需要用到程序池,執行緒池來解決這一問題。1.concurrent模組是用來建立...