執行緒池與程序池

2022-02-15 05:03:40 字數 1522 閱讀 2466

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 提交任務之後 任務完成 會有乙個返回值 是乙個物件 

from concurrent.futures import

processpoolexecutor

p = processpoolexecutor(5)

deftask(n):

print

(n)

if__name__ == '

__main__':

for i in range(10):

res =p.submit(task, i) 我使用res來接收這個物件

print(res.result()) 其中有個方法可以檢視結果 result

使用result 可以檢視物件的結果 但是 不能直接在 submit後直接使用 result 因為 任務提交之後是不會直接 有放回結果的 而result就相當於 等待這個結果 那麼 非同步就會變成序列了

from concurrent.futures import

processpoolexecutor

p = processpoolexecutor(5)

deftask(n):

print

(n)

return n**2

if__name__ == '

__main__':

a =for i in range(10):

res =p.submit(task, i)

p.shutdown()

for i in

a:

print(i.result())

方法 .add_done_callback() 括號內填乙個函式名  函式需要有乙個引數 這個引數會自動傳入 他是 submit的放回物件

from concurrent.futures import

processpoolexecutor

p = processpoolexecutor(5)

deftask(n):

print

(n)

return n**2

defcallback(m):

print('

>>>>

', m.result())

if__name__ == '

__main__':

a =for i in range(10):

p.submit(task, i).add_done_callback(callback)

執行緒池與程序池

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

執行緒池與程序池

為什麼要裝到容器中 可以避免頻繁的建立和銷毀 程序 執行緒 來的資源開銷 可以限制同時存在的執行緒數量 以保證伺服器不會應為資源不足而導致崩潰 幫我們管理了執行緒的生命週期 管理了任務的分配 from concurrent.futures import threadpoolexecutor,proc...

程序池與執行緒池

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