亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2017年10月09日 11:29:48   作者:wait_for_eva  
這篇文章主要介紹了Python 多進(jìn)程和數(shù)據(jù)傳遞的理解的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下

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

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

進(jìn)程的用法和線(xiàn)程大同小異

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

線(xiàn)程的基本方法在進(jìn)程中都能夠使用

但是進(jìn)程和線(xiàn)程中有一個(gè)明顯的區(qū)別:可以實(shí)現(xiàn)多核的運(yùn)用

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

GIL鎖住的,只是一個(gè)進(jìn)程,讓一家人團(tuán)結(jié)

但是一個(gè)進(jìn)程只有這么一把全量鎖,線(xiàn)程不能單獨(dú)跑,那就打包一起跑

多進(jìn)程就這樣完成了一般語(yǔ)言中多線(xiàn)程的優(yōu)化

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

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

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

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

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

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

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

import multiprocessing 
 
multiprocessing.Queue() 

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

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

相關(guān)文章

最新評(píng)論