python進(jìn)程池Pool中apply方法與apply_async方法的區(qū)別
在掌握apply方法與apply_async的區(qū)別之前,需要了解阻塞和非阻塞的區(qū)別
阻塞
阻塞好比過獨木橋,前面人不走,后面人就無法先前走,只有前面人過了獨木橋,后面人才能繼續(xù)向前走
非阻塞
非阻塞的邏輯和阻塞相反,就是前面人不走,你就在旁邊待著,讓后面人先走,
apply就是屬于上面的阻塞模式,apply_async屬于非阻塞模式
1.apply實例
import multiprocessing
def fun(name):
print(name)
if __name__=="__main__":
pool = multiprocessing.Pool(3)
for i in range(1,6):
st = "start {}".format(i)
pool.apply(func=fun,args=(st,))
print("this is flag!")
pool.close()
pool.join()
通過下面的執(zhí)行結(jié)果的截圖可以發(fā)現(xiàn),print("this is flag!")在線程池里的任務(wù)執(zhí)行完畢后才執(zhí)行

2.apply_async實例
import multiprocessing
def fun(name):
print(name)
if __name__=="__main__":
pool = multiprocessing.Pool(3)
for i in range(1,6):
st = "start {}".format(i)
pool.apply_async(func=fun,args=(st,))
print("this is flag!")
pool.close()
pool.join()
apply_async中的print("this is flag!")代碼是在進(jìn)程池之前執(zhí)行

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python?Setuptools的?setup.py實例詳解
setup.py是一個?python?文件,它的存在表明您要安裝的模塊/包可能已經(jīng)用?Setuptools?打包和分發(fā),這是分發(fā)?Python?模塊的標(biāo)準(zhǔn)。?它的目的是正確安裝軟件,本文給大家講解Python?Setuptools的?setup.py感興趣的朋友跟隨小編一起看看吧2022-12-12
對Python random模塊打亂數(shù)組順序的實例講解
今天小編就為大家分享一篇對Python random模塊打亂數(shù)組順序的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11

