程序之間通訊(ipc) inter process communication分2種:
一、 基於檔案,同一臺機器內部多個程序之間通訊:
get_nowait方法,功能等價於get(false)即不阻塞取資料。
put方法,將資料放入佇列:
put_nowait方法,引數obj為要存放的資料,功能等價於put(obj, false)即不阻塞存資料。
empty方法:判斷佇列是否空,若為空返回true,若不空返回false。
full方法:用來判斷佇列是否滿,若已滿返回true,若不滿返回false。另外不定長佇列永遠返回false。
案例:
from multiprocessing import queue,process
defput
(i,q)
:print
(f'給佇列存放了'
) q.put(i)
defget
(q):
i = q.get(
)print
(f'從佇列取出了'
)if __name__ ==
"__main__"
: q = queue(
)for i in
range(5
):process(target=put,args=
(i,q)
).start(
)for i in
range(5
):process(target=get,args=
(q,)
).start(
)
輸出:
給佇列存放了0
給佇列存放了3
給佇列存放了2
給佇列存放了1
給佇列存放了4
從佇列取出了0
從佇列取出了3
從佇列取出了1
從佇列取出了4
從佇列取出了2
**說明:
多程序之間可以使用queue傳遞資料;
通常使用阻塞方式put和get;
put和get的順序是先進先出;
put和get次數一定要一致,假設put五次get六次那麼第六次get會一直陷入阻塞狀態直至取到資料。
pipe,基於管道的多程序通訊方式,功能和queue類似。前面已經對queue詳細講述了使用方法,在這就不對pipe展開細說了,有需要的朋友可以自己查資料。
二、基於網路,同一臺機器或多台機器上的多個程序之間通訊:
作業系統知識
開篇思考 當看到這個標題的第一眼的時候你大腦中在思考什麼?我在想什麼是作業系統呢?他到底有什麼作用呢?其實說到這個問題是因為在自考中有這麼乙個問答題,作業系統的出現對計算機產生了什麼影響?考過此題的應該有印象吧 仔細思考一下,當初自己是怎麼答的呢?自己在做那道簡答題的時候最先想到的就是 01 和一些...
作業系統知識
對於有執行緒系統 對於無線程系統 臨界區 通過對多執行緒的序列化來訪問公共資源或一段 速度快,適合控制資料訪問。在任意時刻只允許乙個執行緒對共享資源進行訪問,如果有多個執行緒試圖訪問公共資源,那麼在有乙個執行緒進入後,其他試圖訪問公共資源的執行緒將被掛起,並一直等到進入臨界區的執行緒離開,臨界區在被...
作業系統 基礎篇
作業系統 operating system,縮寫為os 是管理計算機系統資源 控制程式執行 改善人機介面和為應用軟體提供支援的一種系統軟體。這是嚴謹的定義,方便理解與記憶我們可以投射到生活中,來看看作業系統是個什麼東西?如果你是個擁有乙個大房子的富豪,你會有如下問題 你需要記住你的所有東西,否則你用...