Python併發程式設計4 程序池實現

2021-09-22 18:22:33 字數 988 閱讀 5905

必要性

程序的建立和銷毀過程消耗的資源較多

當任務量眾多,每個任務在很短時間內完成時,需要頻繁的建立和銷毀程序。此時對計算機壓力較大

程序池技術很好的解決了以上問題。

原理

建立一定數量的程序來處理事件,事件處理完進 程不退出而是繼續處理其他事件,直到所有事件全都處理完畢統一銷毀。增加程序的重複利用,降低資源消耗。

程序池實現

建立程序池物件,放入適當的程序

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模組是用來建立...