麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

Python多進程編程技術實例分析

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

本文以實例形式分析了Python多進程編程技術,有助于進一步Python程序設計技巧。分享給大家供大家參考。具體分析如下:

一般來說,由于Python的線程有些限制,例如多線程不能充分利用多核CPU等問題,因此在Python中我們更傾向使用多進程。但在做不阻塞的異步UI等場景,我們也會使用多線程。本篇文章主要探討Python多進程的問題。

Python在2.6引入了多進程的機制,并提供了豐富的組件及api以方便編寫并發應用。multiprocessing包的組件Process, Queue, Pipe, Lock等組件提供了與多線程類似的功能。使用這些組件,可以方便地編寫多進程并發程序。

Process

Process的使用有點像java.lang.Thread,但Thread是線程。start方法用以啟動某個進程。一個簡單的示例:

from multiprocessing import Processimport osimport timedef sleeper(name, seconds):  print "Process ID# %s" % (os.getpid())  print "Parent Process ID# %s" % (os.getppid())  print "%s will sleep for %s seconds" % (name, seconds)  time.sleep(seconds)if __name__ == "__main__":  child_proc = Process(target=sleeper, args=('bob', 5))  child_proc.start()  print "in parent process after child process start"  print "parent process abount to join child process"  child_proc.join()  print "in parent process after child process join"  print "the parent's parent process: %s" % (os.getppid())

實例化一個Process必須要指定target和args。target是新的進程的入口方法,可以認為是main方法。args是該方法的參數列表。啟動進程類似于啟動Thread,必須要調用start方法。也可以繼承Process,覆蓋run方法,在run方法中實現該進程的邏輯。調用join方法會阻塞當前調用進程,直到被調用進程運行結束。
手工終止一個進程可以調用terminate方法,在UNIX系統中,該方法會發送SIGTERM信號量,而在windows系統中,會借助TerminateProcess方法。需要注意的是,exit處理邏輯并不會被執行,該進程的子進程不會被終止,他們只會變成孤兒進程。

Queue

Queue是多進程安全的隊列,可以使用Queue實現多進程之間的數據傳遞。put方法用以插入數據到隊列中,put方法還有兩個可選參數:blocked和timeout。如果blocked為True(默認值),并且timeout為正值,該方法會阻塞timeout指定的時間,直到該隊列有剩余的空間。如果超時,會拋出Queue.Full異常。如果blocked為False,但該Queue已滿,會立即拋出Queue.Full異常。

get方法可以從隊列讀取并且刪除一個元素。同樣,get方法有兩個可選參數:blocked和timeout。如果blocked為True(默認值),并且timeout為正值,那么在等待時間內沒有取到任何元素,會拋出Queue.Empty異常。如果blocked為False,有兩種情況存在,如果Queue有一個值可用,則立即返回該值,否則,如果隊列為空,則立即拋出Queue.Empty異常。Queue的一段示例代碼:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日本在线播放一区二区三区 | 成人午夜在线免费观看 | 国产一国产一级毛片视频 | 99亚洲伊人久久精品影院红桃 | 欧美成人免费在线视频 | 亚洲精品无码不卡在线播放he | 国产大片中文字幕在线观看 | 久久久三区 | 国产精品一区自拍 | 久久久成人免费视频 | 色婷婷久久久久久 | av在线免费看片 | 狠狠操精品视频 | 啊~用cao嗯力cao烂我视频 | av电影在线观看网站 | 成人午夜视频在线观看 | 男女一边摸一边做羞羞视频免费 | 色淫网站免费视频 | 老女人碰碰在线碰碰视频 | 一本色道精品久久一区二区三区 | 毛片免费大全短视频 | 做爰xxxⅹ性护士hd在线 | 精品欧美一区二区精品久久 | 免费毛片随便看 | av免费入口 | 国产亚洲精品综合一区91 | 成人免费看视频 | 久久久久久亚洲国产精品 | 色999久久久精品人人澡69 | 色av成人天堂桃色av | 激情视频免费观看 | 久久国产一二三 | caoporn国产一区二区 | 激情综合视频 | 九九热精品在线播放 | 中国成人在线视频 | 日本一级黄色毛片 | 亚洲第一成网站 | 91精品最新国内在线播放 | www.91sese| 91豆奶|