執行緒池與程序池

2022-02-15 04:03:06 字數 854 閱讀 9287

​ 為什麼要裝到容器中

可以避免頻繁的建立和銷毀(程序/執行緒)來的資源開銷

可以限制同時存在的執行緒數量 以保證伺服器不會應為資源不足而導致崩潰

幫我們管理了執行緒的生命週期

管理了任務的分配

from concurrent.futures import threadpoolexecutor,processpoolexecutor

from threading import activecount,enumerate,current_thread

#建立執行緒池

pool = threadpoolexecutor(2) #同時併發執行緒最大數maxsize=2

def task():

print(current_thread().name)

#提交任務並執行

pool.submit(task)

pool.submit(task)

pool.submit(task)

print(enumerate()) #獲取當前主線程以及程序池中的兩個執行緒的列表

#[<_mainthread(mainthread, started 776)>, , ]

#建立程序池

def task():

time.sleep(1)

print(os.getpid())

if __name__ == '__main__':

#程序池

pool = processpoolexecutor(2)

pool.submit(task)

pool.submit(task)

pool.submit(task)

執行緒池與程序池

從python3.2開始,標準庫為我們提供了concurrent.futures模組,它提供了threadpoolexecutor和processpoolexecutor兩個類,實現了對threading和multiprocessing的更高階的抽象,是使用非同步實現,充分利用cpu提高程式執行效率...

執行緒池與程序池

from concurrent.futures import processpoolexecutor p processpoolexecutor 5 deftask n print n if name main for i in range 10 p.submit task,i submit 提交任...

程序池與執行緒池

1.什麼是池?在保證計算機硬體安全的情況下最大限度的利用計算機,池其實是降低了程式的執行效率,但是保證了計算機的硬體安全,不會造成計算機崩掉,伺服器掛掉,受限於硬體的發展才有了池的概念,其實都是保證硬體的安全 2.執行緒池與程序池 執行緒池也就意味著乙個池子,裡面事先已經放好了執行緒,假如裡面有十個...