並發編程(二)——開啟進程、

來源:互聯網
上載者:User

標籤:名稱   並發編程   逗號   關鍵字   不能   ESS   逾時   rmi   執行個體   

 

一、multiprocessing模組

 

1、multiprocessing模組用來開啟子進程,並在子進程中執行我們定製的任務(比如函數),該模組與多線程模組threading的編程介面類似。

 

2、multiprocessing模組的功能眾多:支援子進程、通訊和共用資料、執行不同形式的同步,提供了Process、Queue、Pipe、Lock等組件。

 

二、Process類

Process([group [, target [, name [, args [, kwargs]]]]])由該類執行個體化得到的對象,表示一個子進程中的任務(尚未啟動)強調:1. 需要使用關鍵字的方式來指定參數2. args指定的為傳給target函數的位置參數,是一個元組形式,必須有逗號參數:group  參數未使用,值始終為Nonetarget  表示調用對象,即子進程要執行的任務args  表示調用對象的位置參數元組,args=(1,2,‘tom‘,)kwargs  表示調用對象的字典,kwargs={‘name‘:‘tom‘,‘age‘:18}name  為子進程的名稱方法:p.start():啟動進程,並調用該子進程中的p.run() p.run():進程啟動時啟動並執行方法,正是它去調用target指定的函數,我們自訂類的類中一定要實現該方法p.terminate():強制終止進程p,不會進行任何清理操作,如果p建立了子進程,該子進程就成了殭屍進程,使用該方法需要特別小心這種情況。如果p還儲存了一個鎖那麼也將不會被釋放,進而導致死結p.is_alive():如果p仍然運行,返回Truep.join([timeout]):主線程等待p終止(強調:是主線程處於等的狀態,而p是處於啟動並執行狀態),直到子進程運行結束才運行。timeout是可選的逾時時間,需要強調的是,p.join只能join住start開啟的進程,而不能join住run開啟的進程屬性:p.daemon:預設值為False,如果設為True,代表p為後台啟動並執行守護進程,當p的父進程終止時,p也隨之終止,並且設定為True後,p不能建立自己的新進程,必須在p.start()之前設定p.name:進程的名稱p.pid:進程的pidp.exitcode:進程在運行時為None、如果為–N,表示被訊號N結束(瞭解即可)p.authkey:進程的身分識別驗證鍵,預設是由os.urandom()隨機產生的32字元的字串。這個鍵的用途是為涉及網路連接的底層處理序間通訊提供安全性,這類串連只有在具有相同的身分識別驗證鍵時才能成功(瞭解即可)

 

並發編程(二)——開啟進程、

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.