python 程序間通訊 上

2022-06-26 09:36:12 字數 1398 閱讀 7009

一  使用queue來實現程序間的記憶體共享

#_*_coding:utf-8_*_

from

multiprocessing import process,queue

import os,time

def f(q,n):

q.put([n,

'hello'])

if __name__ == '

__main__':

#此queue不是直接匯入的import queue,這個是multiprocessing重新封裝的

q=queue()

#迴圈6個程序

for i in range(5

): p=process(target=f,args=(q,i))

p.start()

#等待子程序完畢後在繼續執行

p.join()

for i in

range(q.qsize()):

print q.

get()

顯示效果如下:

[0, 'hello', ]

[1, 'hello', ]

[2, 'hello', ]

[3, 'hello', ]

[4, 'hello', ]

在佇列中可以儲存列表,字典等型別,還是很方便的。但是python間程序間共享記憶體  並不是真正意義的而是需要利用第三方來實現queue就是

二程序鎖lock

#

_*_coding:utf-8_*_

from multiprocessing import

process,lock

import

os,time

deff(l,i):

#加鎖l.acquire()

print

'hello',i

#釋放鎖

l.release()

if__name__ == '

__main__':

lock=lock()

for i in range(5):

p=process(target=f,args=(lock,i)).start()

顯示效果:

hello 0

hello 1

hello 2

hello 3

hello 4

這個lock是完全復刻的執行緒鎖 ,沒有什麼改動。程序間本身記憶體就是獨立的,沒有什麼徵用資源的問題,所以這個把鎖用處不大,但是有的時候可能需要,比如當終端顯示的時候,多個程序都用的同乙個終端顯示。

看看父程序和子程序關係

實驗四 程序間通訊(上)

一 實驗名稱 實驗四 程序間通訊 上 二 實驗日期 2014 3 20 三 實驗目的 1.通過實驗理解軟中斷訊號機制以及如何通過軟中斷實現父子程序同步 2.通過實驗理解無名管道通訊 四 實驗的步驟和方法 第四次小課程序間通訊 上 第一部分本週大課內容回顧 主要內容 1.軟中斷 2.管道通訊 l 程序...

程序間通訊(上)基礎函式篇

printf d d n fds 0 fds 1 3和4,相當於用兩種方式開啟了1個檔案 pid t id fork 建立子程序 if id 0 close fds 1 關閉pipe檔案 exit 0 else if id 0 else waitpid id,null,0 等待子程序退出 int m...

Linux 下程序間的通訊(上)

1.傳統的nuix通訊方式 無名管道,有名管道以及訊號 2.ipc程序間的通訊方式 訊息佇列,共享記憶體及訊號燈集 注 全部的通訊方式都是在核心中完成 以下是各種通訊方式的詳細介紹 list item管道通訊 管道不屬於任何檔案系統,且只存在與記憶體中,但對於管道的讀寫也可以使用普通的read wr...