寫法1
import time from multiprocessing import Process def func(name, age): print(f"我是{name}") time.sleep(0.2) print(f"{name}結束 {age}") if __name__ == '__main__': # target是目標函數,args是位置參數,必須是元組類型,kwargs是關鍵字參數,必須是字典類型 p1 = Process(target=func, args=("進程1",), kwargs={"age": 18}) # 創建第一個進程 p2 = Process(target=func, args=("進程2",), kwargs={"age": 20}) # 創建第二個進程 p1.start() # 開啟第一個進程 p2.start() # 開啟第二個進程 print("主進程執行結束,子進程是依附於主進程存在的,所以,子進程都結束后,主進程才真正的結束。")
執行結果:
主進程執行結束,子進程是依附於主進程存在的,所以,子進程都結束后,主進程才真正的結束。 我是進程1 我是進程2 進程1結束 18 進程2結束 20
寫函數,target是功能,args是位置參數,kwargs是關鍵字參數
寫法2
import time from multiprocessing import Process class MyProcess(Process): def __init__(self, name): # 可以通過初始化來傳遞參數 super(MyProcess, self).__init__() self.name = name def run(self): # 必須有的函數 print(f"{self.name}開始") time.sleep(0.2) print(f"{self.name}結束") if __name__ == '__main__': p1 = MyProcess("進程1") # 創建第一個進程,並傳遞參數 p2 = MyProcess("進程2") # 創建第二個進程,並傳遞參數 p1.start() # 開啟第一個進程 p2.start() # 開啟第二個進程 print("主進程執行結束,子進程是依附於主進程存在的,所以,子進程都結束后,主進程才真正的結束。")
執行結果:
主進程執行結束,子進程是依附於主進程存在的,所以,子進程都結束后,主進程才真正的結束。 MyProcess-1開始 MyProcess-2開始 MyProcess-1結束 MyProcess-2結束
寫類,繼承Process,必須寫run方法
進程與進程之間的關系,就相當於公司里的部門與部門之間的關系一樣,數據是相互隔離的。