【Multiprocessing系列】Process

發表於2017-05-26

利用multiprocessing.Process物件可以建立一個程式,該Process物件與Thread物件的用法相同,也有start(), run(), join()等方法。Process類適合簡單的程式建立,如需資源共享可以結合multiprocessing.Queue使用;如果想要控制程式數量,則建議使用程式池Pool類。

Process介紹

構造方法:
  • Process([group [, target [, name [, args [, kwargs]]]]])
  • group: 執行緒組,目前還沒有實現,庫引用中提示必須是None;
  • target: 要執行的方法;
  • name: 程式名;
  • args/kwargs: 要傳入方法的引數。
例項方法:
  • is_alive():返回程式是否在執行。
  • join([timeout]):阻塞當前上下文環境的程式程,直到呼叫此方法的程式終止或到達指定的timeout(可選引數)。
  • start():程式準備就緒,等待CPU排程。
  • run():strat()呼叫run方法,如果例項程式時未制定傳入target,這star執行t預設run()方法。
  • terminate():不管任務是否完成,立即停止工作程式。
屬性:
  • authkey
  • daemon:和執行緒的setDeamon功能一樣(將父程式設定為守護程式,當父程式結束時,子程式也結束)。
  • exitcode(程式在執行時為None、如果為–N,表示被訊號N結束)。
  • name:程式名字。
  • pid:程式號。

建立多程式的兩種方法

Process類中,可以使用兩種方法建立子程式。

使用Process建立子程式

說明:用法與Threading相似

使用Process類繼承建立子程式

說明:通過繼承Process類,修改run函式程式碼。

傳送門

【Multiprocessing系列】共享資源
【Multiprocessing系列】子程式返回值
【Multiprocessing系列】Pool
【Multiprocessing系列】Process
【Multiprocessing系列】Multiprocessing基礎

相關文章