本文小編為大家詳細介紹“python中進程池Pool怎么初始化”,內容詳細,步驟清晰,細節處理妥當,希望這篇“python中進程池Pool怎么初始化”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
說明
1、初始化Pool時,可以指定流程數。
2、當新請求提交到Pool時,如果池未滿,則創建新流程以執行該請求。
3、如果池中的流程數達到指定的值,則等待該請求,直到池中的流程結束為止,以之前的流程執行新的任務。
實例
# -*- coding:utf-8 -*- import os, time, random from multiprocessing import Pool def worker(msg): t_start = time.time() print("%s開始執行,進程號為%d" % (msg,os.getpid())) # random.random()隨機生成0~1之間的浮點數 time.sleep(random.random()*2) t_stop = time.time() print(msg,"執行完畢,耗時%0.2f\n" % (t_stop-t_start)) def main(): po = Pool(3) # 定義一個進程池,進程數3 for i in range(0,10): # Pool().apply_async(要調用的目標,(傳遞給目標的參數元祖,)) # 每次循環將會用空閑出來的子進程去調用目標 po.apply_async(worker,(i,)) print("----start----") po.close() # 關閉進程池,關閉后po不再接收新的請求 po.join() # 等待po中所有子進程執行完成,必須放在close語句之后 print("-----end-----") if __name__ == "__main__": main()
讀到這里,這篇“python中進程池Pool怎么初始化”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。