Python基礎(chǔ)之如何使用multiprocessing模塊
multiprocessing包是Python中的多進程管理包。與threading.Thread類似,它可以使用multiprocessing.Proces 對象來創(chuàng)建一個進程。
該進程可以運行在Python程序內(nèi)部編寫的函數(shù)。該Process對象與Thread對象的用法相同,也start(),run()的方法。
此外multiprocessing包中也有Lock/Event/Semaphore/Condition類(這些對象可以像多線程那樣,通過參數(shù)傳遞給各個進程),用以同步進程,其用法與threading包中的同名類一致。
所以,multiprocessing的很大一部份與threading使用同一套API,只不過換到了多進程的情境。接下來我們通過一個案例學習:
import timeimport multiprocessing def download () : print('開始下載文件...') time.sleep(1) print('完成下載文件...') def upload() : print('開始上傳文件...') time.sleep(1) print('完成上傳文件...') #download()# upload()#多進程與多線程的使用方式是差不多的download_process = multiprocessing.Process(target=download)upload_process = multiprocessing. Process(target=upload)if _name_ == ’_main_’: #多進程必須要在 if _name_ == '_main_”里面 download_process.start() upload_process.start () #默認情況下,主進程代碼運行完畢之后會等待子進程結(jié)束 print(’--主進程運行完了---’)
上述代碼是一個非常簡單的程序,一旦運行這個程序,按照代碼的執(zhí)行順序,download 函數(shù)執(zhí)行完畢后才能執(zhí)行upload 函數(shù)?如果可以讓download和upload同時運行,顯然執(zhí)行這個程序的效率會大大提升。
要點:
進程(Process)是資源分配的最小單位 多進程是Python程序中實現(xiàn)多任務(wù)的一種方式,使用多進程可以大大提高程序的執(zhí)行效率二、進程的創(chuàng)建 導入進程包import multiprocessing
通過進程類創(chuàng)建進程對象進程對象= multiprocessing.Process()
啟動進程執(zhí)行任務(wù)進程對象.start()
通過進程類創(chuàng)建進程對象
進程對象=multiprocessing.Process(target=任務(wù)名)
帶有參數(shù)的任務(wù)
進程執(zhí)行帶有參數(shù)的任務(wù)傳參有兩種方式:
元組方式傳參∶元組方式傳參一定要和參數(shù)的順序保持一致。 字典方式傳參:字典方式傳參字典中的key一定要和參數(shù)名保持一致。到此這篇關(guān)于Python基礎(chǔ)之如何使用multiprocessing模塊的文章就介紹到這了,更多相關(guān)multiprocessing模塊的使用內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. python如何換行輸出2. Python使用urlretrieve實現(xiàn)直接遠程下載圖片的示例代碼3. Python:UserWarning:此模式具有匹配組。要實際獲得組,請使用str.extract4. Android Studio中一套代碼多渠道打包的實現(xiàn)方法5. Java 接口和抽象類的區(qū)別詳解6. python如何計算圓的面積7. Java使用Tesseract-Ocr識別數(shù)字8. Android打包篇:Android Studio將代碼打包成jar包教程9. 詳解java google Thumbnails 圖片處理10. 解決Android Studio 格式化 Format代碼快捷鍵問題
