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

首頁 > 編程 > Python > 正文

Python 多進程和數(shù)據(jù)傳遞的理解

2020-01-04 16:34:14
字體:
供稿:網(wǎng)友

Python 多進程和數(shù)據(jù)傳遞的理解

python不僅線程用的是系統(tǒng)原生線程,進程也是用的原生進程

進程的用法和線程大同小異

import multiprocessing  p = multiprocessing.Process(target=fun,args=()) 

線程的基本方法在進程中都能夠使用

但是進程和線程中有一個明顯的區(qū)別:可以實現(xiàn)多核的運用

python本身會啟動一個主進程,并且擁有一個主線程把主進程看做一家之主,那主線程也是他本身,其他線程就相當于老婆們
而進程,長大了的兒子們,線程固然是不能分割的,一家人還是要團結(jié),但是兒子自家的事務,老子卻也不能插手,所以,一家只能占用一個CPU實現(xiàn)單核運用的話,生多個兒子那必然就實現(xiàn)了多核運用

GIL鎖住的,只是一個進程,讓一家人團結(jié)

但是一個進程只有這么一把全量鎖,線程不能單獨跑,那就打包一起跑

多進程就這樣完成了一般語言中多線程的優(yōu)化

數(shù)據(jù)傳遞

多線程,多進程中總有要協(xié)同的工作,都涉及數(shù)據(jù)的交互,不過交互方式有些不同

信息進行傳遞的時候,為了不阻塞執(zhí)行一般會將數(shù)據(jù)放入對列當中而不是直接返回

線程中,由于都屬于同一個進程,定義一個全局的隊列在各線程中就能夠壓入數(shù)據(jù)

進程可能運行在不同的CPU上,因此,相互間的傳遞不能在全局定義,只能通過創(chuàng)建時進行傳入

內(nèi)部操作:傳入的隊列實際上并不是將引用傳入,然后直接操作隊列,這畢竟是不同的CPU上的工作

隊列的傳入實際上是隊列拷貝的傳入,通過pickle拷貝后進行傳入,然后再pickle將數(shù)據(jù)傳回

import multiprocessing  multiprocessing.Queue() 

線程和進程都有不同的隊列對象,以實現(xiàn)不同的數(shù)據(jù)交互,不能錯位使用

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關(guān)教程知識閱讀請移步到python教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 贵阳市| 大安市| 崇明县| 金溪县| 岐山县| 德庆县| 手游| 庆云县| 故城县| 兴仁县| 健康| 东至县| 榕江县| 台南县| 绥中县| 陇西县| 游戏| 东兴市| 浦东新区| 三河市| 延安市| 宜宾县| 阳城县| 泸西县| 哈密市| 崇明县| 花莲市| 龙海市| 迭部县| 木兰县| 开平市| 清涧县| 米易县| 南宁市| 长沙市| 丘北县| 大新县| 梅河口市| 鸡泽县| 长泰县| 固安县|