同步 非同步 阻塞 非阻塞。

2022-08-30 06:12:10 字數 628 閱讀 7597

看到乙個很好的解釋,於是記錄下來。

非阻塞式通常是對於i/o操作而言的,意思就是當你請求乙個系統呼叫的時候,不管收到什麼結果函式都會立即返回,而不讓執行緒進入休眠狀態以等待i/o操作的完成。相反阻塞式i/o方式在請求乙個磁碟檔案時會進入執行緒休眠狀態以等待磁碟i/o完成後再甦醒。

非同步/同步與阻塞式/非阻塞式的區別在於前者主要描述訊息通訊機制,非同步時被呼叫者通過通知、狀態或**來告知呼叫者。而後者主要描述程式在等待呼叫結果時的狀態,非阻塞式時呼叫者主動以一定的間隔時間檢視呼叫是否完成。

感覺還沒講清楚,再來乙個栗子。小黃餓了,讓媽媽做蛋糕給他吃(發起呼叫)。

同步阻塞:小黃啥也不幹,就盯著(阻塞)媽媽做完蛋糕立即(同步)開吃。

非同步阻塞:媽媽讓小黃先去一邊玩並答應蛋糕一做好就叫小黃來吃(非同步通知),但小黃還是什麼也不做(阻塞),等著媽媽把蛋糕做好。

同步非阻塞:媽媽開始做蛋糕之後小黃就去看電視了(非阻塞),但隔一下就去廚房看(同步)媽媽做好沒。

非同步非阻塞:媽媽答應蛋糕一做好就叫小黃來吃(非同步通知),小黃安心看電視去了(非阻塞)。

從這裡面可以看出,非同步通常帶有通知(或狀態、**),由被呼叫者通知呼叫者任務已完成,同步則呼叫者主動盯著任務是否完成。阻塞與非阻塞即描述被呼叫者進行任務時,呼叫者是幹等著還是抽空幹點別的。

阻塞,非阻塞,非同步,同步

之前一直對這個概念理不太清楚,今天看到一篇文章感覺不錯 本文 老張愛喝茶,廢話不說,煮開水。出場人物 老張,水壺兩把 普通 水壺,簡稱水壺 會響的水壺,簡稱響水壺 1 老張把水壺放到火上,立等水開。同步阻塞 老張覺得自己有點傻 2 老張把水壺放到火上,去客廳看電視,時不時去廚房看看水開沒有。同步非阻...

同步 非同步 阻塞 非阻塞

故事 老王燒開水。出場人物 老張,水壺兩把 普通水壺,簡稱水壺 會響的水壺,簡稱響水壺 老王想了想,有好幾種等待方式 1.老王用水壺煮水,並且站在那裡,不管水開沒開,每隔一定時間看看水開了沒。同步阻塞 老王想了想,這種方法不夠聰明。2.老王還是用水壺煮水,不再傻傻的站在那裡看水開,跑去寢室上網,但是...

同步 非同步 阻塞 非阻塞

故事 老王燒開水。出場人物 老張,水壺兩把 普通水壺,簡稱水壺 會響的水壺,簡稱響水壺 老王想了想,有好幾種等待方式 1.老王用水壺煮水,並且站在那裡,不管水開沒開,每隔一定時間看看水開了沒。同步阻塞 老王想了想,這種方法不夠聰明。2.老王還是用水壺煮水,不再傻傻的站在那裡看水開,跑去寢室上網,但是...