故事:老王燒開水。
出場人物:老張,水壺兩把(普通水壺,簡稱水壺;會響的水壺,簡稱響水壺)。
老王想了想,有好幾種等待方式
1.老王用水壺煮水,並且站在那裡,不管水開沒開,每隔一定時間看看水開了沒。-同步阻塞
老王想了想,這種方法不夠聰明。
2.老王還是用水壺煮水,不再傻傻的站在那裡看水開,跑去寢室上網,但是還是會每隔一段時間過來看看水開了沒有,水沒有開就走人。-同步非阻塞
老王想了想,現在的方法聰明了些,但是還是不夠好。
3.老王這次使用高大上的響水壺來煮水,站在那裡,但是不會再每隔一段時間去看水開,而是等水開了,水壺會自動的通知他。-非同步阻塞
老王想了想,不會呀,既然水壺可以通知我,那我為什麼還要傻傻的站在那裡等呢,嗯,得換個方法。
4.老王還是使用響水壺煮水,跑到客廳上網去,等著響水壺自己把水煮熟了以後通知他。-非同步非阻塞
老王豁然,這下感覺輕鬆了很多。
總結:阻塞與非阻塞是對呼叫者而言的,同步與非同步是對被呼叫者而言的。
同步與非同步,阻塞與非阻塞的關係
這幾個知識點其實用處很多,也是很容易搞混的,我們平時可能用了但是並沒有發現,今天想來總結一下。我第一次感受到同步和非同步的不同是在學習volatile的時候 因為我之前也沒有多執行緒概念 之前也被同步啊這些概念搞的很亂。當我主線程新建了乙個子執行緒之後兩個執行緒是同時執行的,當時我才發現原來他們不是...
同步 非同步 阻塞與非阻塞之間的關係
同步 非同步 阻塞與非阻塞可以組合成以下4種排列 同步阻塞 同步非阻塞 非同步阻塞 非同步非阻塞 在使用普通的inputstream outputstream 類時,就是屬於同步阻塞,因為執行當前讀寫任務一直是當前執行緒,並且讀不到或寫不出去就一直是阻塞的狀態。阻塞的意思就是方法.不返回,直到讀到資...
阻塞非阻塞非同步同步 io的關係
個人之見。同步有 阻塞io 和非阻塞io 非同步是沒有阻塞和非阻塞的理由如下 非同步就不關心cpu的io執行結果和狀態,哪來的阻塞。io過程 舉例子如read 兩步 第一步 核心等待資料可讀 第二步 將核心讀到的資料拷貝到程序 同步阻塞是 資料沒準備好我就一直等待。一直等到資料準備好。開始載入資料到...