Python爬蟲、資料分析、網站開發等案例教程視頻免費在線觀看
https://space.bilibili.com/523606542
Python學習交流群:1039649593
multiprocessing模塊
multiprocessing包是Python中的多行程管理包,與threading.Thread類似,它可以使用multiprocessing.Proces 物件來創建一個行程,
該行程可以運行在Python程式內部撰寫的函式,該Process物件與Thread物件的用法相同,也start(),run()的方法,
此外multiprocessing包中也有Lock/Event/Semaphore/Condition類(這些物件可以像多執行緒那樣,通過引數傳遞給各個行程),用以同步行程,其用法與threading包中的同名類一致,
所以,multiprocessing的很大一部份與threading使用同一套API,只不過換到了多行程的情境,接下來我們通過一個案例學習:
import time import 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 () #默認情況下,主行程代碼運行完畢之后會等待子行程結束 print('--主行程運行完了---')
上述代碼是一個非常簡單的程式,一旦運行這個程式,按照代碼的執行順序,download 函式執行完畢后才能執行upload 函式﹒如果可以讓download和upload同時運行,顯然執行這個程式的效率會大大提升,
要點:
-
行程(Process)是資源分配的最小單位
-
多行程是Python程式中實作多任務的一種方式,使用多行程可以大大提高程式的執行效率
1. 行程的創建
-
匯入行程包
import multiprocessing -
通過行程類創建行程物件
行程物件= multiprocessing.Process() -
啟動行程執行任務
行程物件.start()
通過行程類創建行程物件
行程物件=multiprocessing.Process(target=任務名)
2. 行程的引數傳遞
帶有引數的任務
行程執行帶有引數的任務傳參有兩種方式:
-
元組方式傳參∶元組方式傳參一定要和引數的順序保持一致,
-
字典方式傳參:字典方式傳參字典中的key一定要和引數名保持一致,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/285585.html
標籤:Python
