首頁 >Java >Java入門 >java面試-說說進程間通訊的方式

java面試-說說進程間通訊的方式

王林
王林轉載
2021-01-15 10:50:323404瀏覽

java面試-說說進程間通訊的方式

我們先來看看面試題目:

(學習影片分享:java影片教學

面試題一:進程間的通訊方式(VIVO、阿里巴巴面試題)

面試題二:進程通訊方式有哪些,問我分別怎麼使用,管道有哪些類型,各有什麼優缺點。 (百度面試題)

一、進程通訊的目的

1、資料傳輸
一個行程需要將它的資料傳送給另一個行程。
2、資源共享
多個行程之間共享相同的資源。
3、通知事件
一個進程需要向另一個或一組進程發送訊息,通知它(它們)發生了某種事件
4、進程控制
有些進程希望完全控制另一個進程的執行(如Debug 進程),此時控制進程希望能夠攔截另一個進程的所有陷入和異常,並且能夠及時知道它的狀態改變。

(更多相關面試題推薦:java面試題目及答案

二、進程溝通的方式

1、管道( pipe )
管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的進程間使用。進程的親緣關係通常是指父子進程關係。
2、有名管道(FIFO)
名管道也是半雙工的通訊方式,但是它允許無親緣關係進程間的通訊。
3、訊號
用來通知接收程序某個事件已經發生,主要作為進程間以及同一進程不同執行緒之間的同步手段。
4、信號量
信號量是一個計數器,可以用來控制多個行程對共享資源的存取。它常作為一種鎖機制,防止某一行程正在存取共享資源時,其他行程也會存取該資源。
5、訊息佇列
訊息佇列是訊息的鍊錶,存放在核心中。一個訊息佇列由一個識別碼(即佇列ID)來識別。訊息佇列克服了訊號傳遞訊息少、管道只能承載無格式位元組流以及緩衝區大小受限等缺點。
6、共享記憶體
共享記憶體(Shared Memory),指兩個或多個進程共享一個給定的儲存區。
特點:
共享記憶體是最快的一種 IPC,因為進程是直接對記憶體進行存取。
因為多個行程可以同時操作,所以需要進行同步。
信號量 共享記憶體通常結合在一起使用,信號量用來同步對共享記憶體的存取。
7、套接字
套接字也是一種進程間通訊機制,與其他通訊機制不同的是,它可用於不同機器間的進程通訊

相關推薦:java入門教學

以上是java面試-說說進程間通訊的方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除