python程式設計作業系統篇知識點詳細梳理 中

2021-10-13 21:06:31 字數 1330 閱讀 6626

程序之間通訊(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 是管理計算機系統資源 控制程式執行 改善人機介面和為應用軟體提供支援的一種系統軟體。這是嚴謹的定義,方便理解與記憶我們可以投射到生活中,來看看作業系統是個什麼東西?如果你是個擁有乙個大房子的富豪,你會有如下問題 你需要記住你的所有東西,否則你用...