日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

7.2.2 - 并发多线程 开启进程的两种方式

發布時間:2025/4/14 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 7.2.2 - 并发多线程 开启进程的两种方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一 multiprocessing模塊介紹

python中的多線程無法利用多核優勢,如果想要充分地使用多核CPU的資源(os.cpu\_count\(\)查看),在python中大部分情況需要使用多進程。

Python提供了multiprocessing。 multiprocessing模塊用來開啟子進程,并在子進程中執行我們定制的任務(比如函數),該模塊與多線程模塊threading的編程接口類似。multiprocessing模塊的功能眾多:支持子進程、通信和共享數據、執行不同形式的同步,>提供了Process、Queue、Pipe、Lock等組件。

需要再次強調的一點是:與線程不同,進程沒有任何共享狀態,進程修改的數據,改動僅限于該進程內。

二 Process類的介紹

創建進程的類:

Process([group [, target [, name [, args [, kwargs]]]]]),由該類實例化得到的對象,可用來開啟一個子進程 強調: 1. 需要使用關鍵字的方式來指定參數 2. args指定的為傳給target函數的位置參數,是一個元組形式,必須有逗號

參數介紹:

group參數未使用,值始終為None target表示調用對象,即子進程要執行的任務 args表示調用對象的位置參數元組,args=(1,2,'cmz',) kwargs表示調用對象的字典,kwargs={'name':'cmz','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.daemon:默認值為False,如果設為True,代表p為后臺運行的守護進程,當p的父進程終止時,p也隨之終止,并且設定為True后,p不能創建自己的新進程,必須在p.start()之前設置 p.name:進程的名稱 p.pid:進程的pid

?

三 Process類的使用

注意:在windows中Process()必須放到# if __name__ == '__main__':下

創建并開啟子進程的方式一

import time import random from multiprocessing import Processdef running(name):print('%s runninging' %name)time.sleep(random.randrange(1,5))print('%s running end' %name)if __name__ == '__main__':#實例化得到四個對象p1=Process(target=running,args=('cmz1',)) #必須加,號p2=Process(target=running,args=('cmz2',))p3=Process(target=running,args=('cmz3',))p4=Process(target=running,args=('cmz4',))#調用對象下的方法,開啟四個進程 p1.start()p2.start()p3.start()p4.start()print('')

創建并開啟子進程的方式二

import time import random from multiprocessing import Processclass running(Process):def __init__(self,name):super().__init__()self.name=namedef run(self):print('%s running' %self.name)time.sleep(random.randrange(1,5))print('%s running end' %self.name)if __name__ == '__main__':#實例化得到四個對象p1=running('cmz1')p2=running('cmz2')p3=running('cmz3')p4=running('cmz4')#調用對象下的方法,開啟四個進程p1.start() #start會自動調用run p2.start()p3.start()p4.start()print('')

練習

from multiprocessing import Processn=100 #在windows系統中應該把全局變量定義在if __name__ == '__main__'之上就可以了def work():global nn=0print('子進程內: ',n)if __name__ == '__main__':p=Process(target=work)p.start()print('主進程內: ',n)

結果是(子進程在開始的時候拷貝了父進程的數據,然后自己又修改了數據。)

主進程內: 100 子進程內: 0

?

轉載于:https://www.cnblogs.com/caimengzhi/p/8511406.html

總結

以上是生活随笔為你收集整理的7.2.2 - 并发多线程 开启进程的两种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 人妻在线一区二区三区 | 久久午夜av | 国产免费中文字幕 | 久久精品视频2 | 亚洲第一福利网站 | 日日操日日干 | 欧美人与禽猛交乱配 | 影音先锋丝袜美腿 | 亚洲第一区在线播放 | 海角国产乱辈乱精品视频 | 人妻熟女一区二区三区 | 夜夜躁狠狠躁 | 免费午夜影院 | 亚洲爱| 日韩在线视频看看 | 免费看黄20分钟 | 日本一二三区在线 | 日日爱669| 视频一区在线免费观看 | 精品国产乱码久久久久久蜜柚 | 91麻豆成人| 青草99| 99re在线视频观看 | 在线你懂得 | 成年人黄色录像 | 欧美日韩成人一区 | 男人av资源网 | 最近中文字幕在线视频 | 夜夜嗨av一区二区三区四区 | 欧美成人一区二区三区四区 | 国产情侣呻吟对白高潮 | 日本视频在线播放 | 67194国产| 毛片网站免费在线观看 | 欧美 日韩 国产 在线 | 91视频二区 | 青青草原国产视频 | 久久影音先锋 | 亚洲国产精品18久久久久久 | 亚洲成熟毛多妇女av毛片 | 苍井空亚洲精品aa片在线播放 | 26uuu精品一区二区在线观看 | 男人插女人视频网站 | 狠狠操天天干 | 欧美中文字幕 | 午夜国产一级 | 中国a毛片 | 亚洲欧美另类自拍 | 国产视频高清 | 免费观看成人 | 青草视频在线免费观看 | 欧美粉嫩videosex极品 | 亚洲二区av| 亚洲乱妇 | 女生被草 | 综合激情亚洲 | 四虎永久网址 | 欧美激情久久久久久 | 亚洲欧美日韩国产一区 | 免费黄色入口 | 国产片网站 | 97在线观看 | 里番精品3d一二三区 | 性一交一乱一乱一视频 | www.四虎影视.com| 深夜激情网站 | www.xxx.日本| 青青草原综合网 | 丁香婷婷视频 | 少妇被又大又粗又爽毛片久久黑人 | 黄色国产 | 国产精品一区二区三区在线看 | 精品在线视频一区 | 全部免费毛片在线播放一个 | 国产精品边吃奶边做爽 | 强伦人妻一区二区三区 | 国产成人自拍偷拍 | 色综合五月 | 欧美视频久久久 | 天天操天天草 | 超碰免费看 | 91精品国产色综合久久不卡粉嫩 | 超碰在线观看97 | 免费a在线观看播放 | 亚洲av日韩av在线观看 | 精品xxx | 国产精品日韩欧美 | 亚洲精品国产免费 | 一区二区少妇 | 亚洲精品成人片在线观看精品字幕 | 精品国产一 | 青青草在线观看视频 | 女人高潮潮呻吟喷水 | 日本精品一区在线 | 91精品国产高清一区二区三蜜臀 | xxxxx在线观看 | 欧美成人69 | 国产精品美女毛片真酒店 | 热久久这里只有精品 |