Python3.x:多進程Queue

各個進程的內(nèi)存都是獨立的镣奋,不能互相直接訪問,那我們?nèi)绾芜M行進程間通信呢悉尾?其實之前有提到過突那,就是通過一個中間人,來實現(xiàn)兩個進程之間的通信构眯,下面來看看都有哪些方式能夠?qū)崿F(xiàn)進程間通信

進程queue

說進程queue之前愕难,先說一下線程queue與進程的關(guān)系,因為這里有個事情要注意一下惫霸,首先看一段代碼

from multiprocessing import Process
import queue
# import os


def f():
    q.put([3, None, 'dasda'])
    print(q.get())


if __name__ == '__main__':
    q = queue.Queue()
    p = Process(target=f,)
    p.start()
    print(q.get(block=False))

可以看到這里用的隊列queue猫缭,主進程生成一個空隊列實例,然后再主進程再開一個進程壹店,在子進程里對隊列q進行操作饵骨,這段代碼在不同的環(huán)境中運行結(jié)果不同,在windows下當程序運行到f函數(shù)里的q.put([3, None, 'dasda'])的時候就會拋出錯誤:q沒有定義茫打,這里也好理解,就是子進程無法訪問主進程的一些數(shù)據(jù)妖混,但是在mac老赤、ubuntu或者win下的anaconda下運行的時候子進程可以對q進程put和get操作,然后程序會在最后一行g(shù)et的時候拋出隊列為空的錯誤制市,這里我的理解方式就是子進程數(shù)據(jù)拷貝自父進程抬旺,也就是子進程存在一個定義了的q,但是進程間數(shù)據(jù)又不共享祥楣,所以主進程里的q還是為空

讓我們來看看這兩種情況


子進程存在定義了的q隊列

子進程不存在定義了的q隊列

這個時候就用到了進程queue开财,使用進程queue來實現(xiàn)進程間的通信

from multiprocessing import Queue
from multiprocessing import Process


def run():
    q.put(3)
    # print(q.get())


if __name__ == '__main__':
    q = Queue()
    t = Process(target=run)
    t.start()
    # time.sleep(1)
    print(q.get())

這里可能會問,既然進程也有queue误褪,那是不是這個queue能實現(xiàn)和線程queue一樣的效果呢责鳍?答案是no,線程queue實現(xiàn)的是操作同一份數(shù)據(jù)兽间,但是進程queue實現(xiàn)的是數(shù)據(jù)的復制历葛,通過復制一個queue來實現(xiàn)進程間通信

轉(zhuǎn)載請注明出處

python自學技術(shù)互助扣扣群:670402334

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市嘀略,隨后出現(xiàn)的幾起案子恤溶,更是在濱河造成了極大的恐慌,老刑警劉巖帜羊,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咒程,死亡現(xiàn)場離奇詭異,居然都是意外死亡讼育,警方通過查閱死者的電腦和手機帐姻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門稠集,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人卖宠,你說我怎么就攤上這事巍杈。” “怎么了扛伍?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵筷畦,是天一觀的道長。 經(jīng)常有香客問我刺洒,道長鳖宾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任逆航,我火速辦了婚禮鼎文,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘因俐。我一直安慰自己拇惋,他們只是感情好,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布抹剩。 她就那樣靜靜地躺著撑帖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪澳眷。 梳的紋絲不亂的頭發(fā)上胡嘿,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天,我揣著相機與錄音钳踊,去河邊找鬼衷敌。 笑死,一個胖子當著我的面吹牛拓瞪,可吹牛的內(nèi)容都是我干的缴罗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吴藻,長吁一口氣:“原來是場噩夢啊……” “哼瞒爬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起沟堡,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤侧但,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后航罗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體禀横,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年粥血,在試婚紗的時候發(fā)現(xiàn)自己被綠了柏锄。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酿箭。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖趾娃,靈堂內(nèi)的尸體忽然破棺而出缭嫡,到底是詐尸還是另有隱情,我是刑警寧澤抬闷,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布妇蛀,位于F島的核電站,受9級特大地震影響笤成,放射性物質(zhì)發(fā)生泄漏评架。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一炕泳、第九天 我趴在偏房一處隱蔽的房頂上張望纵诞。 院中可真熱鬧,春花似錦培遵、人聲如沸浙芙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茁裙。三九已至,卻和暖如春节仿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背掉蔬。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工廊宪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人女轿。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓箭启,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蛉迹。 傳聞我的和親對象是個殘疾皇子傅寡,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容

  • @(python)[筆記] 目錄 一荐操、什么是進程 1.1 進程的概念 進程的概念起源于操作系統(tǒng),是操作系統(tǒng)最核心的...
    CaiGuangyin閱讀 1,259評論 0 9
  • Object C中創(chuàng)建線程的方法是什么珍策?如果在主線程中執(zhí)行代碼托启,方法是什么?如果想延時執(zhí)行代碼攘宙、方法又是什么屯耸? 1...
    AlanGe閱讀 1,739評論 0 17
  • 幸福是一個溫暖的擁抱,幸福是家人團聚……幸福就在眼前多矮。 以前的我不知道什么是幸福缓淹,自從那件事以后…...
    徐紫瑜閱讀 271評論 1 3
  • 為了增強對企業(yè)業(yè)務過程的有效管理,需要在 MES系統(tǒng)軟件 中引入工作流技術(shù)工窍。在MES系統(tǒng)軟件中割卖,對業(yè)務性很強的...
    dw456閱讀 1,117評論 0 0
  • 時間一秒一秒的轉(zhuǎn)動鹏溯,到了八點半,我打了聲招呼開始出門淹仑,今天對我來講是一個特殊的日子丙挽,我第一次準備外出找工作,如果家...
    老狼哥哥閱讀 148評論 0 0