跨平臺的進程

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值;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章