新聞中心
這里有您想知道的互聯(lián)網營銷解決方案
創(chuàng)新互聯(lián)Python教程:python進程池中apply如何使用?
大家有沒有考慮過可以直接用進程池去做任務呢?我們習慣性自己去處理一個任務,但是比較麻煩,如果可以制作一個進程自己去處理能實現(xiàn)嗎?答案一定是肯定的,但是需要借助apply功能,大家知道要這個方法嗎?知道怎么去使用嗎?如果不了解的話,可以繼續(xù)看下文了哦~

成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網營銷推廣、網站重做改版、左云網站定制設計、自適應品牌網站建設、H5建站、商城網站開發(fā)、集團公司官網建設、成都外貿網站制作、高端網站制作、響應式網頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為左云等各大城市提供網站開發(fā)制作服務。
apply_async與apply區(qū)別:
l apply:添加任務后,等待進程函數(shù)執(zhí)行完,
l apply_async:添加任務后,立即返回,支持回調;原型如下:
#callback為回調函數(shù)
pools.apply_async(func, args=(), kwds={},
callback=None, error_callback=None,)
直接看例子:
from multiprocessing import Pool
import time
import os
def func(*args, **kwargs):
# 定義進程函數(shù)
print('sub process id:', os.getpid())
time.sleep(1)
if __name__ == "__main__":
start = time.time()
# 創(chuàng)建進程池,進程數(shù)為4
pools = Pool(4)
for i in range(5):
# 添加任務
pools.apply_async(func)
# 關閉進程池,不在添加任務
pools.close()
pools.join()
print("cost time:", int(time.time()-start))
結果:
sub process id: 15536 sub process id: 2788 sub process id: 20288 sub process id: 11020 sub process id: 15536 cost time: 2
現(xiàn)在大家應該知道怎么去使用apply這個方法了吧,害怕大家不清楚明白,還給大家準備了一個示例,大家可以看下示例演示,也可以很容易理解的哦~
當前題目:創(chuàng)新互聯(lián)Python教程:python進程池中apply如何使用?
鏈接分享:http://www.dlmjj.cn/article/djehpdg.html


咨詢
建站咨詢
