同步 非同步 阻塞 非阻塞

2021-09-26 08:33:28 字數 709 閱讀 7941

同步:a任務依賴b任務,只有b任務完成,a任務才算完成,兩個任務狀態保持一致,有點同生共死的味道,是一種可靠的任務序列。

非同步:a任務依賴b任務,但只是通知b任務,並不等b任務完成,只要a自己完成就算完成任務了,至於b是否完成就不一定了,故是一種不可靠的任務序列。

即同步保證程式可靠性,非同步提公升程式效能。

同步:流程處理結果簡單;易於捕獲異常

非同步:沒有時序嚴格限制,不影響主線程邏輯,常用io等耗時操作

阻塞:程序在發起了乙個系統呼叫後,由於該操作不能立即完成,需等待, 於是核心將程序掛起為waiting狀態, 失去cpu執行權,等操作完成後,再設為ready

非阻塞: 不會失去cpu執行權

不管是程序還是執行緒,每次阻塞、切換都需要陷入系統呼叫(system call),先讓cpu跑作業系統的排程程式,然後再由排程程式決定該跑哪乙個程序(執行緒)。

執行緒阻塞三種情況:

1.等待阻塞:執行時執行緒執行wait(),jvm把執行緒放入等待池中,執行緒釋放鎖

2.同步阻塞:執行執行緒等待獲取鎖,jvm把執行緒放入鎖池,執行緒釋放鎖

3.其他阻塞:執行執行緒呼叫sleep(),join(),或者發出i/o請求,jvm將執行緒設為阻塞狀態。sleep不釋放鎖

初看起來,同步與阻塞很相似,都是在等,但二者其實是兩個不同概念。同步指呼叫得不到結果就不返回,這一過程不一定阻塞。

cpu可能仍在執行程式,只是沒有返回結果,此時仍是非阻塞.

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

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

同步 非同步 阻塞 非阻塞

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

同步 非同步 阻塞 非阻塞

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