亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python多進(jìn)程執(zhí)行方法apply_async使用說(shuō)明

瀏覽:68日期:2022-06-26 11:35:56
apply_async簡(jiǎn)介

python在同一個(gè)線程中多次執(zhí)行同一方法時(shí),該方法執(zhí)行耗時(shí)較長(zhǎng)且每次執(zhí)行過(guò)程及結(jié)果互不影響,如果只在主進(jìn)程中執(zhí)行,效率會(huì)很低,因此使用multiprocessing.Pool(processes=n)及其apply_async()方法提高程序執(zhí)行的并行度從而提高程序的執(zhí)行效率,其中processes=n為程序并行執(zhí)行的進(jìn)程數(shù)。

apply_async使用簡(jiǎn)明代碼

import multiprocessing#method為多次調(diào)用的方法def method(param): passif __name__ == ’__main__’: pool = multiprocessing.Pool(processes=5) params= [’param1’, ’param2’, ’param3’, ’param4’, ’param5’] for param in params: pool.apply_async(method, args=(param, )) pool.close()使用總結(jié):

apply_async是異步非阻塞式,不用等待當(dāng)前進(jìn)程執(zhí)行完畢,隨時(shí)跟進(jìn)操作系統(tǒng)調(diào)度來(lái)進(jìn)行進(jìn)程切換,即多個(gè)進(jìn)程并行執(zhí)行,提高程序的執(zhí)行效率。

補(bǔ)充:記錄python multiprocessing Pool的map和apply_async方法

遇到的問(wèn)題

在學(xué)習(xí)python多進(jìn)程時(shí),進(jìn)程上運(yùn)行的方法接收多個(gè)參數(shù)和多個(gè)結(jié)果時(shí)遇到了問(wèn)題,現(xiàn)在經(jīng)過(guò)學(xué)習(xí)在這里總結(jié)一下

Pool.map()多參數(shù)任務(wù)

在給map方法傳入帶多個(gè)參數(shù)的方法不能達(dá)到預(yù)期的效果,像下面這樣

def job(x ,y): return x * yif __name__ == '__main__': pool = multiprocessing.Pool() res = pool.map(job, 2, 3) print res

所以只能通過(guò)對(duì)有多個(gè)參數(shù)的方法進(jìn)行封裝,在進(jìn)程中運(yùn)行封裝后的方法如下

def job(x ,y): return x * ydef job1(z): return job(z[0], z[1])if __name__ == '__main__': pool = multiprocessing.Pool() res = pool.map(job1, [(2, 3), (3, 4)]) print res

這樣就能達(dá)到傳遞多個(gè)參數(shù)的效果

ps:如果需要得到多個(gè)結(jié)果可以傳入多個(gè)元組在一個(gè)列表中

Pool.apply_async()輸出多個(gè)迭代結(jié)果

在使用apply_async()方法接收多個(gè)參數(shù)的方法時(shí),在任務(wù)方法中正常定義多個(gè)參數(shù),參數(shù)以元組形式傳入即可

但是給apply_async()方法傳入多個(gè)值獲取多個(gè)迭代結(jié)果時(shí)就會(huì)報(bào)錯(cuò),因?yàn)樵摲椒ㄖ荒芙邮找粋€(gè)值,所以可以將該方法放入一個(gè)列表生成式中,如下

def job(x): return x * xif __name__ == '__main__': pool multiprocessing.Pool() res = [pool.apply_async(target=job, (i,)) for i in range(3)] print [r.get() for r in res]

python 3中提供了starmap和startmap_async兩個(gè)方法

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 欧美真人视频一级毛片 | 国产a网站 | 成人免费xxxxx在线视频 | 国产精品久久久久影院色 | 亚洲精品国产成人专区 | 最新版天堂资源中文官网 | 99久久精品99999久久 | 午夜成年人网站 | 久久综合给会久久狠狠狠 | 欧美白人最猛性xxxxx | 免费一看一级欧美 | 在线成人aa在线看片 | 中文精品爱久久久国产 | 国产成人高清 | 成人的天堂| yy6080福利午夜免费观看 | 成人一级片在线观看 | 性xxx69xxx视频在线观看 | 久久99久久99 | 欧美人成一本免费观看视频 | 欧美一级视屏 | 亚洲看片网站 | 韩国一级毛片在线观看 | 国产一级做a爰片久久毛片男 | 中国美女乱淫免费看视频 | 国产精品久久久久久久久免费观看 | 成人国产精品一级毛片了 | 亚洲一区免费视频 | 欧美日韩精品一区二区三区不卡 | 久久黄色免费网站 | 国产精品性视频免费播放 | 国产午夜三区视频在线 | 久草手机在线播放 | 播放一级毛片 | 亚洲qingse中文久久网 | 亚洲欧美在线观看 | 色天天躁夜夜躁天干天干 | 国产在线步兵一区二区三区 | 中文字幕亚洲不卡在线亚瑟 | 欧美做暖小视频xo免费 | 国产精品高清久久久久久久 |