阻塞、非阻塞和同步、異步

1、同步與異步

  同步與異步關注的是消息通信機制,同步與異步關注的是發起調用後到底是調用者主動等待這個結果(同步),還是調用者被動等待結果——即被調用者通知調用者(異步)

2、阻塞與非阻塞

  阻塞與非阻塞關注的是程序在等待結果時的狀態,阻塞——等待結果時,當前線程會被掛起。非阻塞——等待結果時,當前線程不會被掛起。

 

引用網上一個例子

故事:老王燒開水。

出場人物:老張,水壺兩把(普通水壺,簡稱水壺;會響的水壺,簡稱響水壺)。

老王想了想,有好幾種等待方式

1.老王用水壺煮水,並且站在那裏,不管水開沒開,每隔一定時間看看水開了沒。-同步阻塞

老王想了想,這種方法不夠聰明。

2.老王還是用水壺煮水,不再傻傻的站在那裏看水開,跑去寢室上網,但是還是會每隔一段時間過來看看水開了沒有,水沒有開就走人。-同步非阻塞

老王想了想,現在的方法聰明瞭些,但是還是不夠好。

3.老王這次使用高大上的響水壺來煮水,站在那裏,但是不會再每隔一段時間去看水開,而是等水開了,水壺會自動的通知他。-異步阻塞

老王想了想,不會呀,既然水壺可以通知我,那我爲什麼還要傻傻的站在那裏等呢,嗯,得換個方法。

4.老王還是使用響水壺煮水,跑到客廳上網去,等着響水壺自己把水煮熟了以後通知他。-異步非阻塞

老王豁然,這下感覺輕鬆了很多。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章