python中進程的編寫

        程序編寫完沒有運行稱之爲程序。正在運行的代碼就是進程。在Python3語言中,對多進程支持的是multiprocessing模塊和subprocess模塊。multiprocessing模塊爲在子進程中運行任務、通訊和共享數據,以及執行各種形式的同步提供支持。
一、進程創建
Python提供了非常好用的多進程包multiprocessing,只需要定義一個函數,Python會完成其他所有事情。藉助這個包,可以輕鬆完成從單進程到併發執行的轉換。multiprocessing支持子進程、通信和共享數據。語法格式如下:

Process([group [, target [, name [, args [, kwargs]]]]])

其中target表示調用對象,args表示調用對象的位置參數元組。kwargs表示調用對象的字典。name爲別名。group參數未使用,值始終爲None。
構造函數簡單地構造了一個Process進程,Process的實例方法、Process的實例屬性如下表所示

方法 描述
is_alive() 如果p仍然運行,返回True
join([timeout]) 等待進程p終止。Timeout是可選的超時期限,進程
run() 進程啓動時運行的方法。默認情況下,會調用傳遞給Process構造函數的target。定義進程的另一種方法是繼承Process類並重新實現run()函數
start() 啓動進程,這將運行代表進程的子進程,並調用該子進程中的run()函數
terminate() 強制終止進程。如果調用此函數,進程p將被立即終止,同時不會進行任何清理動作。如果進程p創建了它自己的子進程,這些進程將變爲殭屍進程。使用此方法時需要特別小心。如果p保存了一個鎖或參與了進程間通信,那麼終止它可能會導致死鎖或I/O損壞

【示例】創建子進程並執行

from multiprocessing import Process
#定義子進程代碼
def run_proc():
    print('子進程運行中')

if __name__=='__main__':
    print('父進程運行')
    p=Process(target=run_proc)
    print('子進程將要執行')
    p.start()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章