Python基礎(chǔ)之如何使用multiprocessing模塊
multiprocessing包是Python中的多進(jìn)程管理包。與threading.Thread類似,它可以使用multiprocessing.Proces 對(duì)象來(lái)創(chuàng)建一個(gè)進(jìn)程。
該進(jìn)程可以運(yùn)行在Python程序內(nèi)部編寫的函數(shù)。該P(yáng)rocess對(duì)象與Thread對(duì)象的用法相同,也start(),run()的方法。
此外multiprocessing包中也有Lock/Event/Semaphore/Condition類(這些對(duì)象可以像多線程那樣,通過(guò)參數(shù)傳遞給各個(gè)進(jìn)程),用以同步進(jìn)程,其用法與threading包中的同名類一致。
所以,multiprocessing的很大一部份與threading使用同一套API,只不過(guò)換到了多進(jìn)程的情境。接下來(lái)我們通過(guò)一個(gè)案例學(xué)習(xí):
import timeimport multiprocessing def download () : print('開(kāi)始下載文件...') time.sleep(1) print('完成下載文件...') def upload() : print('開(kāi)始上傳文件...') time.sleep(1) print('完成上傳文件...') #download()# upload()#多進(jìn)程與多線程的使用方式是差不多的download_process = multiprocessing.Process(target=download)upload_process = multiprocessing. Process(target=upload)if _name_ == ’_main_’: #多進(jìn)程必須要在 if _name_ == '_main_”里面 download_process.start() upload_process.start () #默認(rèn)情況下,主進(jìn)程代碼運(yùn)行完畢之后會(huì)等待子進(jìn)程結(jié)束 print(’--主進(jìn)程運(yùn)行完了---’)
上述代碼是一個(gè)非常簡(jiǎn)單的程序,一旦運(yùn)行這個(gè)程序,按照代碼的執(zhí)行順序,download 函數(shù)執(zhí)行完畢后才能執(zhí)行upload 函數(shù)?如果可以讓download和upload同時(shí)運(yùn)行,顯然執(zhí)行這個(gè)程序的效率會(huì)大大提升。

要點(diǎn):
進(jìn)程(Process)是資源分配的最小單位 多進(jìn)程是Python程序中實(shí)現(xiàn)多任務(wù)的一種方式,使用多進(jìn)程可以大大提高程序的執(zhí)行效率二、進(jìn)程的創(chuàng)建 導(dǎo)入進(jìn)程包import multiprocessing
通過(guò)進(jìn)程類創(chuàng)建進(jìn)程對(duì)象進(jìn)程對(duì)象= multiprocessing.Process()
啟動(dòng)進(jìn)程執(zhí)行任務(wù)進(jìn)程對(duì)象.start()
通過(guò)進(jìn)程類創(chuàng)建進(jìn)程對(duì)象
進(jìn)程對(duì)象=multiprocessing.Process(target=任務(wù)名)

帶有參數(shù)的任務(wù)

進(jìn)程執(zhí)行帶有參數(shù)的任務(wù)傳參有兩種方式:
元組方式傳參∶元組方式傳參一定要和參數(shù)的順序保持一致。 字典方式傳參:字典方式傳參字典中的key一定要和參數(shù)名保持一致。到此這篇關(guān)于Python基礎(chǔ)之如何使用multiprocessing模塊的文章就介紹到這了,更多相關(guān)multiprocessing模塊的使用內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Docker 部署 Prometheus的安裝詳細(xì)教程2. idea 打包的jar運(yùn)行報(bào) "XXX中沒(méi)有主清單屬性"3. idea重置默認(rèn)配置的方法步驟4. 通過(guò)Django Admin+HttpRunner1.5.6實(shí)現(xiàn)簡(jiǎn)易接口測(cè)試平臺(tái)5. IntelliJ IDEA設(shè)置自動(dòng)提示功能快捷鍵的方法6. IntelliJ IDEA安裝插件的方法步驟7. idea打開(kāi)多個(gè)窗口的操作方法8. php過(guò)濾器使用詳解9. IntelliJ IDEA調(diào)整字體大小的方法10. idea設(shè)置代碼格式化的方法步驟

網(wǎng)公網(wǎng)安備