本文小編為大家詳細介紹“python中進程池Pool怎么初始化”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“python中進程池Pool怎么初始化”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了永福免費建站歡迎大家使用!
說明
1、初始化Pool時,可以指定流程數(shù)。
2、當新請求提交到Pool時,如果池未滿,則創(chuàng)建新流程以執(zhí)行該請求。
3、如果池中的流程數(shù)達到指定的值,則等待該請求,直到池中的流程結(jié)束為止,以之前的流程執(zhí)行新的任務(wù)。
實例
# -*- coding:utf-8 -*- import os, time, random from multiprocessing import Pool def worker(msg): t_start = time.time() print("%s開始執(zhí)行,進程號為%d" % (msg,os.getpid())) # random.random()隨機生成0~1之間的浮點數(shù) time.sleep(random.random()*2) t_stop = time.time() print(msg,"執(zhí)行完畢,耗時%0.2f\n" % (t_stop-t_start)) def main(): po = Pool(3) # 定義一個進程池,進程數(shù)3 for i in range(0,10): # Pool().apply_async(要調(diào)用的目標,(傳遞給目標的參數(shù)元祖,)) # 每次循環(huán)將會用空閑出來的子進程去調(diào)用目標 po.apply_async(worker,(i,)) print("----start----") po.close() # 關(guān)閉進程池,關(guān)閉后po不再接收新的請求 po.join() # 等待po中所有子進程執(zhí)行完成,必須放在close語句之后 print("-----end-----") if __name__ == "__main__": main()
讀到這里,這篇“python中進程池Pool怎么初始化”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。