多程序是是實現多工的一種方法,程序池是實現多程序的一種方法,它可以定義一次可以執行多少個程序。對於知道需要同時執行多少個任務,而且同時執行任務較少(比如:同時執行5個任務),可以直接建立相應數量的程序。但對於所需要程序數量不確定,而且同時執行任務很多的情況下(比如:同時執行1000個任務),你不可能同時建立1000個程序,這樣你的電腦會卡死,所以需要程序池來管理程序。
下面使用python來實現乙個簡單的程序池:
from multiprocessing import pool
imoprt os, time, random
def work(number):
# 建立乙個方法,充當一次任務
start = time.time()
# os.getpid()為輸出程序號
print("%d個程序開始執行,程序號為:%d" % (number, os.getpid()))
time.sleep(random.ramdom())
end = time.time()
print("%d個程序結束,執行時間為:%0.2f" % (number, end - start))
def main():
# 建立乙個程序池,最大程序數量為3
po = pool(3)
for temp in range(0, 10)
po.close() # 關閉程序池不再接受新的任務
po.join() # 阻塞主線程,等待子執行緒執行完畢,如果沒有該方法,當主線程比子執行緒先執行完畢,那麼主線程就會關閉,子執行緒即使沒有執行完,也會關閉。
if __name__ == "__main__":
main()
以上就是簡單的執行緒池的python**實現:
執行結果:
從執行結果來看,同時執行的縣城只能有3個,只有當前乙個執行緒(任務)執行完畢後,才能夠執行其他執行緒(任務)。
python 簡單的程序池
當需要建立的子程序數量不多時,可以直接利用multiprocessing中的process動態成生多個程序,但如果是上百甚至上千個目標,手動的去建立程序的工作量巨大,此時就可以用到multiprocessing模組提供的pool方法。import multiprocessing import os ...
python 程序池pool簡單使用
平常會經常用到多程序,可以用程序池pool來進行自動控制程序,下面介紹一下pool的簡單使用。需要主動是,在windows上要想使用程序模組,就必須把有關程序的 寫if name main 語句的下面,才能正常使用windows下的程序模組。unix linux下則不需要。pool類 pool類可以...
python 程序鎖和程序池簡單使用
程序鎖 from multiprocessing import process,lock 程序鎖def f l,i l.acquire print hello world i l.release if name main lock lock for num in range 10 process t...