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

2021-08-03 09:33:27 字數 960 閱讀 4713

之前一直對這個概念理不太清楚,今天看到一篇文章感覺不錯~
本文**:
老張愛喝茶,廢話不說,煮開水。出場人物:老張,水壺兩把(普通

水壺,簡稱水壺;會響的水壺,簡稱響水壺)。

1 老張把水壺放到火上,立等水開。(同步阻塞)

老張覺得自己有點傻

2 老張把水壺放到火上,去客廳看電視,時不時去廚房看看水開沒有。(同步非阻塞)

老張還是覺得自己有點傻,於是變高階了,買了把會響笛的那種

水壺。水開之後,能大聲發出嘀~~~~的噪音。

3 老張把響水壺放到火上,立等水開。(非同步阻塞)

老張覺得這樣傻等意義不大

4 老張

把響水壺放到火上,去客廳看電視,水壺響之前不再去看它了,響了

再去拿壺。(非同步非阻塞)老張覺得自己聰明了。

所謂同步非同步,只是對於水壺而言。普通水壺,同步;響水壺,異

步。雖然都能幹活,但響水壺可以在自己完工之後,提示老張水開

了。這是普通水壺所不能及的。同步只能讓呼叫者去輪詢自己(情況

2中),造成老張效率的低下。所謂阻塞非阻塞,僅僅對於老張而

言。立等的老張,阻塞;

看電視的老張,非阻塞。情況1和情況3中老張就是阻塞的,媳

婦喊他都不知道。雖然3中響水壺是非同步的,可對於立等的老張沒有

太大的意義。所以一般非同步是配合非阻塞使用的,這樣才能發揮非同步

的效用。

阻塞,非阻塞:動作發起者是否去檢測,不檢測,直接等待的

是阻塞,時不時檢測的是非阻塞。

理返回結果,提醒請求者的是非同步。

顯然非同步可以節約請求者的時間,在事件處理的過程中,請求

者不必等待,可以去做別的事,伺服器完成操作後會通知請求者或者

執行緒接受處理結果。

同步 非同步 阻塞 非阻塞

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

同步 非同步 阻塞 非阻塞

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

同步非同步 阻塞非阻塞

文章 博主的結論不敢確定,但是文章中的很多觀點很有用 linux網路io中涉及到如下模型 1 阻塞式io 2 非阻塞式io 3 io多路復用 4 訊號驅動io 5 非同步io 在知乎上面看到一些解釋如下 截圖如下 3 總結 同步和非同步針對應用程式來,關注的是程式中間的協作關係 阻塞與非阻塞更關注的...