同步與非同步 阻塞與非阻塞區別

2021-08-08 14:12:37 字數 552 閱讀 1331

老張愛喝茶,廢話不說,煮開水。出場人物:老張,水壺兩把(普通水壺,簡稱水壺;會響的水壺,簡稱響水壺)。

1 老張把水壺放到火上,立等水開。(同步阻塞)老張覺得自己有點傻

2 老張把水壺放到火上,去客廳看電視,時不時去廚房看看水開沒有。(同步非阻塞)老張還是覺得自己有點傻,於是變高階了,買了把會響笛的那種水壺。水開之後,能大聲發出嘀~~~~的噪音。

3 老張把響水壺放到火上,立等水開。(非同步阻塞)老張覺得這樣傻等意義不大

4 老張把響水壺放到火上,去客廳看電視,水壺響之前不再去看它了,響了再去拿壺。(非同步非阻塞)老張覺得自己聰明了。

所謂同步非同步,只是對於水壺而言。普通水壺,同步;響水壺,非同步。雖然都能幹活,但響水壺可以在自己完工之後,提示老張水開了。這是普通水壺所不能及的。同步只能讓呼叫者去輪詢自己(情況2中),造成老張效率的低下。所謂阻塞非阻塞,僅僅對於老張而言。立等的老張,阻塞;看電視的老張,非阻塞。情況1和情況3中老張就是阻塞的,媳婦喊他都不知道。雖然3中響水壺是非同步的,可對於立等的老張沒有太大的意義。所以一般非同步是配合非阻塞使用的,這樣才能發揮非同步的效用。

——**網路,作者不明。

同步與非同步 阻塞與非阻塞區別

為了弄清這幾個概念還和同事討論了一番,然後還查了一些資料,總結一下。同步與非同步是在客戶端向服務端發請求的時候,客戶端做出的處理方式。同步 客戶端向服務端發出乙個請求,客戶端就一直在等著服務端的返回結果。非同步 客戶端向服務端發出乙個請求並向伺服器說 你處理完了通知我一聲哦,我就不在這兒一直等著了。...

同步與非同步 阻塞與非阻塞

設想一下這個情景,你列了個購物清單 a,b,c,d 去商店買東西,你向老闆詢店問有沒有你想要的a i o操作 於是老闆去倉庫檢視,這個時候假如你在前台等待老闆查詢結果回來那麼這種詢問等待的方式為同步,此時你相當於被掛起,是處於阻塞狀態的,而如果你沒有在前台等待老闆的查詢而是接著進店逛看有沒有你想要的...

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

同步與非同步阻塞與非阻塞 阻塞和非阻塞關注的是程式在等待呼叫結果 訊息,返回值 時的狀態.阻塞呼叫是指呼叫結果返回之前,當前執行緒會被掛起。呼叫執行緒只有在得到結果之後才會返回。非阻塞呼叫指在不能立刻得到結果之前,該呼叫不會阻塞當前執行緒。還是上面的例子,你打 問書店老闆有沒有 分布式系統 這本書,...