什麼是執行緒(程序)通訊,為什麼需要通訊?

時間 2021-06-01 04:41:19

1樓:check-777

程序通訊就是為了完成程序互斥和程序同步而存在的,假如有程序A和程序B。

程序A想進入臨界區,程序B也想進入臨界區,這兩個程序得協商一下吧。

而這個協商由OS負責還是全部由程序負責需要看程序通訊的方式。

2樓:圍城

因為有些複雜程式或者是系統需要多個程序或者執行緒共同完成某個具體的任務,那麼也就需要程序之間通訊和資料訪問。程序粒度可以進一步提高系統整體並行效能和記憶體訪問安全,每個程序可以有各自的分工。所以多個程序共同完成乙個大的系統是比單個程序多執行緒要有很大的好處。

樓主可以看看我的文章—程序間通訊系列

3樓:大寬寬

考慮到這個答案的正經版本隨便搜都可以搜到。我給乙個不太正經的答案。

你可以大致認為執行緒程序就是你們家小區乙個個房間。平時大家都是各自住各自的對吧。不然就亂套了。

但總有時候,需要串串門:

「老李啊,我們家今天裝修,要樓道裡放一鋼琴,您走路留意著點啊。「「好嘞,我就呆屋裡,不礙的「

或者「張阿姨,我下午有點事,麻煩您幫我幼兒園接下明明。今天我剛包了餃子,您嚐嚐「

「嗨,客氣嘛。下午沒問題。「

這種行為我們稱為跨程序通訊。

為啥要通訊,因為不通訊辦不成事啊。

上面兩個例子代表了程序間協作的兩個典型場景,第乙個叫做「互斥」,就是有乙個程序/執行緒要獨佔乙個資源;第二個叫做「同步」,就是排好接下來的程序/執行緒執行的順序。

執行緒和程序的區別是什麼?

import 潘多拉 主機 廚房 CPU核心 廚師 程序 灶台 幾個執行緒 灶台上幾個爐子 乙個廚師,可以用乙個灶台,用乙個爐子給你煮一鍋粥 也可以用多個灶台,每個灶台上架鍋子同時給你炒菜 速度快的廚師,很短的時間內可以做出一桌子菜,但是他很累,你要給他打扇。 YIFEI 看到有人發的阮一峰的文章,...

redis 為什麼是單執行緒的?

詩和遠方 說Redis是單執行緒是不準確的,其實是多程序,多執行緒的,但如果說其I O模型是單執行緒那就是對的。接下來我們說說為什麼I O模型要單執行緒。我們用快取的目的無非就是做併發控制,快取資料,對效能都有一定的要求 注意這裡是指吞吐量和響應時間 最原始的方式就是單程序阻塞式I O,這樣我們一次...

量子通訊為什麼是 無條件安全 的通訊方式?

Nick 說幾個要點希望可以拋磚引玉。1.量子方式和傳統方式相比,資訊按份傳輸,竊聽者只能獲取全部資料或者不獲取資料,而無法獲取資料某一比例大於零且小於一的分布。2.如果竊聽者獲取了全部資料,由於量子態的不確定性,造成了事實上不可能完美重現這一組資料,因此資訊接受者可以通過資料比對發現竊聽者的存在。...