1. multiprocessing模塊
簡單使用
from multiprocessing import Process
import time
def time_a():
time.sleep(2)
print("Hello,我是第一個")
def time_b():
time.sleep(2)
print("我是第二個")
# a.time_a(1)
# a.time_b(1)
if __name__ == '__main__':
print("多線程")
# 創建一個子進程
p1 = Process(target=time_a,)
p2 = Process(target=time_b,)
# 啓動子進程
p1.start()
for i in range(5):
print(i)
time.sleep(i)
p2.start()
2. for 循環創建進程
from multiprocessing import Process
import time
def time_a(i):
time.sleep(3)
print("Hello,",i)
if __name__ == '__main__':
for i in range(20):
# target 調用函數 args 傳參
p1 = Process(target=time_a,args=(i,))
p1.start()
3. 傳參的兩種方式
from multiprocessing import Process
import time
def time_a(i):
print("Hello,",i)
if __name__ == '__main__':
for i in range(2):
# kwargs 傳遞的json格式參數,第一個鍵是對應函數中的 i
p1 = Process(target=time_a,kwargs={'i':"劉老六"})
p2 = Process(target=time_a,args=("吳老五",))
p1.start()
p2.start()
4. 類 的子進程創建方式 及等待子進程執行結束
from multiprocessing import Process
import time
class Pr(Process):
def __init__(self,qq):
# 此處執行父類的init 方法
super().__init__()
self.qq = qq
def run(self):
time.sleep(2)
print(" run ",self.qq)
if __name__ == '__main__':
# 類的傳參
p1 = Pr('canshu')
# 此處沒有寫具體那一個方法 但是start 方法默認就會調用run方法
p1.start()
# join 是等待上面的子進程執行結束後 才繼續向下執行
p1.join()
print("回到主進程")
if name == ‘main’: 是必加參數 沒有則報錯
源自Linux系統則不需要寫