国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python多進程控制學習小結

2020-02-15 23:29:04
字體:
來源:轉載
供稿:網友

前言:

python多進程,經常在使用,卻沒有怎么系統的學習過,官網上面講得比較細,結合自己的學習,整理記錄下官網:https://docs.python.org/3/library/multiprocessing.html

multiprocessing簡介

multiprocessing是python自帶的多進程模塊,可以大批量的生成進程,在服務器為多核CPU時效果更好,類似于threading模塊。相對于多線程,多進程由于獨享內存空間,更穩定安全,在運維里面做些批量操作時,多進程有更多適用的場景

multiprocessing包提供了本地和遠程兩種并發操作,有效的避開了使用子進程而不是全局解釋鎖的線程,因此,multiprocessing可以有效利用到多核處理

Process類

在multiporcessing中,通過Process類對象來批量產生進程,使用start()方法來啟動這個進程

1.語法

multiprocessing.Process(group=None,target=None,name=None,args=(),kwargs={},*)

group: 這個參數一般為空,它只是為了兼容threading.Tread target: 這個參數就是通過run()可調用對象的方法,默認為空,表示沒有方法被調用 name: 表示進程名 args: 傳給target調用方法的tuple(元組)參數 kwargs: 傳給target調用方法的dict(字典)參數

2.Process類的方法及對象

run()
該方法是進程的運行過程,可以在子類中重寫此方法,一般也很少去重構

start()
啟動進程,每個進程對象都必須被該方法調用

join([timeout])
等待進程終止,再往下執行,可以設置超時時間

name
可以獲取進程名字,多個進程也可以是相同的名字

is_alive()
返回進程是否還存活,True or False,進程存活是指start()開始到子進程終止

daemon
守護進程的標記,一個布爾值,在start()之后設置該值,表示是否后臺運行
注意:如果設置了后臺運行,那么后臺程序不運行再創建子進程

pid
可以獲取進程ID

exitcode
子進程退出時的值,如果進程還沒有終止,值將是None,如果是負值,表示子進程被終止

terminate()
終止進程,如果是Windows,則使用terminateprocess(),該方法對已經退出和結束的進程,將不會執行

以下為一個簡單的例子:

#-*- coding:utf8 -*- import multiprocessingimport timedef work(x):  time.sleep(1)  print time.ctime(),'這是子進程[{0}]...'.format(x)if __name__ == '__main__':  for i in range(5):    p = multiprocessing.Process(target=work,args=(i,))    print '啟動進程數:{0}'.format(i)    p.start()    p.deamon = True

當然也可以顯示每個進程的ID

#-*- coding:utf8 -*- import multiprocessingimport timeimport osdef work(x):  time.sleep(1)  ppid = os.getppid()  pid = os.getpid()  print time.ctime(),'這是子進程[{0},父進程:{1},子進程:{2}]...'.format(x,ppid,pid)if __name__ == '__main__':  for i in range(5):    p = multiprocessing.Process(target=work,args=(i,))    print '啟動進程數:{0}'.format(i)    p.start()    p.deamon = True            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 小金县| 龙岩市| 化德县| 连平县| 泰和县| 广汉市| 津南区| 文成县| 安岳县| 杭锦后旗| 陇川县| 靖安县| 石河子市| 霍邱县| 攀枝花市| 瓦房店市| 陵水| 光山县| 淳化县| 五指山市| 仁布县| 临高县| 玛曲县| 林周县| 胶南市| 荣昌县| 游戏| 永宁县| 雅江县| 北川| 龙江县| 天气| 临安市| 常州市| 克拉玛依市| 大港区| 新绛县| 陆丰市| 鲜城| 武夷山市| 汤原县|