Windows無法使用fork調用創建進程
multiprocessing模塊就是跨平臺版本的多進程模塊,使用該模塊的Process類可以創建進程。from multiprocessing import Process
from time import sleep
num = 100
def test():
print("------>num:", num)
def test1():
print("test2----->num:",num)
if __name__ == "__main__":
p=Process(target=test) # p就是一個子進程對象
p1=Process(target=test1)
# 啓動進程
p.start()
p1.start()
p.join() # join() 表示主進程給當前的進程讓步,但是不會影響其他的子進程的運行
for i in range(10):
print("----->主進程打印i:",i)
Process語法結構
Process([group [, target [, name [, args [, kwargs]]]]])
target:表示這個進程實例所調用對象;
args:表示調用對象的位置參數元組;
kwargs:表示調用對象的關鍵字參數字典;
name:爲當前進程實例的別名;
group:大多數情況下用不到;
Process類常用方法:
is_alive():判斷進程實例是否還在執行;
join([timeout]):是否等待進程實例執行結束,或等待多少秒;
start():啓動進程實例(創建子進程);
run():如果沒有給定target參數,對這個對象調用start()方法時,就將執行對象中的run()方法;
terminate():不管任務是否完成,立即終止;
Process類常用屬性:
name:當前進程實例別名,默認爲Process-N,N爲從1開始遞增的整數;
pid:當前進程實例的PID值;