在保證計算機硬體安全的情況下最大限度的利用計算機
池其實是降低了程式的執行效率,但是保證了計算機硬體的安全
(硬體的發展跟不上軟體的速度)
from concurrent.futures import processpoolexecutorsubmit 提交任務之後,任務完成會有乙個返回值,是乙個物件p = processpoolexecutor(5)
def task(n):
print(n)
if __name__ == '__main__':
for i in range(10):
p.submit(task, i)
from concurrent.futures import processpoolexecutor使用result可以檢視物件的結果,但是不能直接在 submit 後直接使用 result;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 就相當於等待這個結果;此時非同步就會變成序列了
from concurrent.futures import processpoolexecutor方法.add_done_callback() 括號內填乙個函式名 ,函式需要有乙個引數,這個引數會自動傳入 — submit 的返回物件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())
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 processpoolexecutorsubmit 提交任務之後,任務完成會有乙個返回值,是乙個物件p = processpoolexecutor(5)
def task(n):
print(n)
if __name__ == '__main__':
for i in range(10):
p.submit(task, i)
from concurrent.futures import processpoolexecutor使用result可以檢視物件的結果,但是不能直接在 submit 後直接使用 result;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 就相當於等待這個結果;此時非同步就會變成序列了
from concurrent.futures import processpoolexecutor方法.add_done_callback() 括號內填乙個函式名 ,函式需要有乙個引數,這個引數會自動傳入 — submit 的返回物件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())
from concurrent.futures import processpoolexecutorp = 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...