程序池 執行緒池

2022-07-17 05:24:11 字數 3579 閱讀 9313

在保證計算機硬體安全的情況下最大限度的利用計算機

池其實是降低了程式的執行效率,但是保證了計算機硬體的安全

(硬體的發展跟不上軟體的速度)

from concurrent.futures import processpoolexecutor

p = processpoolexecutor(5)

def task(n):

print(n)

if __name__ == '__main__':

for i in range(10):

p.submit(task, i)

submit 提交任務之後,任務完成會有乙個返回值,是乙個物件

from concurrent.futures import processpoolexecutor

p = processpoolexecutor(5)

def task(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)

def task(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)

def task(n):

print(n)

return n**2

def callback(n):# 這裡面的n是任務task函式執行完畢後的返回結果

print('>>>>', n.result())

if __name__ == '__main__':

a =for i in range(10):

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

在保證計算機硬體安全的情況下最大限度的利用計算機

池其實是降低了程式的執行效率,但是保證了計算機硬體的安全

(硬體的發展跟不上軟體的速度)

from concurrent.futures import processpoolexecutor

p = processpoolexecutor(5)

def task(n):

print(n)

if __name__ == '__main__':

for i in range(10):

p.submit(task, i)

submit 提交任務之後,任務完成會有乙個返回值,是乙個物件

from concurrent.futures import processpoolexecutor

p = processpoolexecutor(5)

def task(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)

def task(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)

def task(n):

print(n)

return n**2

def callback(n):# 這裡面的n是任務task函式執行完畢後的返回結果

print('>>>>', n.result())

if __name__ == '__main__':

a =for i in range(10):

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

程序池 執行緒池

程序池和執行緒池相似,所以這裡我們以程序池為例介紹,下面對程序池的討論完全適用於執行緒池 如果沒有特殊宣告 程序池是由伺服器預先建立的一組子程序,這些子程序的數目在3 10個之間 典型情況 執行緒池的數量應該和cpu數量差不多。程序池中的所有子程序都執行者相同的 並具有相同的屬性。因為程序池在伺服器...

執行緒池 程序池

執行緒池 程序池 池子解決什麼問題?1.建立 銷毀執行緒伴隨著系統開銷,如果過於頻繁會影響系統執行效率 2.執行緒併發數量過多,搶占系統資源,從而導致系統阻塞甚至宕機 3.能夠剛好的控制和管理池子裡面的執行緒和程序 concurrent.futures模組提供了高度封裝的非同步呼叫介面 thread...

程序池, 執行緒池

知識儲備 池 裝載固定數量介質,該介質值得是程序或者執行緒 為什麼要用?讓機器在自己可承受的範圍內去保證乙個高效的工作 from concurrent.futures import processpoolexecutor,threadpoolexecutor pool processpoolexec...