python進(jìn)程池Pool中apply方法與apply_async方法的區(qū)別
在掌握apply方法與apply_async的區(qū)別之前,需要了解阻塞和非阻塞的區(qū)別
阻塞
阻塞好比過獨(dú)木橋,前面人不走,后面人就無法先前走,只有前面人過了獨(dú)木橋,后面人才能繼續(xù)向前走
非阻塞
非阻塞的邏輯和阻塞相反,就是前面人不走,你就在旁邊待著,讓后面人先走,
apply就是屬于上面的阻塞模式,apply_async屬于非阻塞模式
1.apply實(shí)例
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實(shí)例
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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
pandas combine_first函數(shù)處理兩個(gè)數(shù)據(jù)集重疊和缺失
combine_first是pandas中的一個(gè)函數(shù),它可以將兩個(gè)DataFrame對象按照索引進(jìn)行合并,用一個(gè)對象中的非空值填充另一個(gè)對象中的空值,這個(gè)函數(shù)非常適合處理兩個(gè)數(shù)據(jù)集有部分重疊和缺失的情況,可以實(shí)現(xiàn)數(shù)據(jù)的補(bǔ)全和更新,本文介紹combine_first函數(shù)的語法及一些案例應(yīng)用2024-01-01Python中條件語句、循環(huán)語句和pass語句的使用示例
Python條件語句是通過一條或多條語句的執(zhí)行結(jié)果(True或者False)來決定執(zhí)行的代碼塊,下面這篇文章主要給大家介紹了關(guān)于Python中條件語句、循環(huán)語句和pass語句使用的相關(guān)資料,需要的朋友可以參考下2022-06-06Python爬蟲JSON及JSONPath運(yùn)行原理詳解
這篇文章主要介紹了Python爬蟲JSON及JSONPath運(yùn)行原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06python 實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)到txt和pdf文檔及亂碼問題的解決
這篇文章主要介紹了python 實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)到txt和pdf文檔及亂碼問題的解決,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03