新聞中心
大家有沒有考慮過(guò)可以直接用進(jìn)程池去做任務(wù)呢?我們習(xí)慣性自己去處理一個(gè)任務(wù),但是比較麻煩,如果可以制作一個(gè)進(jìn)程自己去處理能實(shí)現(xiàn)嗎?答案一定是肯定的,但是需要借助apply功能,大家知道要這個(gè)方法嗎?知道怎么去使用嗎?如果不了解的話,可以繼續(xù)看下文了哦~

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


咨詢
建站咨詢
