同步 非同步 阻塞 非阻塞

2021-09-24 14:31:35 字數 957 閱讀 2113

之前參加某公司的校招的時候,當時簡歷裡面寫了我的部落格位址,然後技術面試官還真去看了,然後問了我一些部落格裡面的問題。因為寫部落格是為了方便自己以後忘記及時檢視和分享給大家自己的學習方法,然後有些寫了之後,沒有及時鞏固,有些遺忘。

好了,進入正題,自己通過查詢,然後加上自己的理解,來談談部落格題目。一般來說,阻塞、非阻塞是跟同步、非同步一起來說的,那我現在就從這四個的組合來說一下。組合結果是這樣的:

①同步+阻塞

②同步+非阻塞

③非同步+阻塞

④非同步+非阻塞

同步和非同步,網上大多這樣解釋:請求發起方對訊息結果的獲取是主動發起的,還是等被動通知的。如果是主動發起,就是同步,如果是等被動通知,就是非同步。其實這個好理解,就好比我們日常生活中的快遞,如果是你寄給別人的,這裡其實就是同步了;如果是你去購物**買東西,你下單了,然後等著商家把快遞寄給你,這個就是非同步了。

阻塞和非阻塞,在計算機中,通常指的是針對io的操作,比如磁碟io、網路io......比如某個執行緒呼叫了乙個函式,這個函式返回結果需要一定的時間,如果在等待結果的過程中,執行緒處於掛起狀態,即什麼都不能幹,此時就是阻塞的;如果執行緒處於執行狀態,即可以處理其它任務,只是過段時間去檢視一下有沒有結果,此時就是非阻塞的。

理解了同步、非同步、阻塞、非阻塞之後,我們可以看一下它們的四個組合是怎麼回事。

還是拿快遞舉例吧,比如我們寄給別人乙個快遞,寄出去之後,我們啥也不做,就一直看著物流資訊,看快遞到了沒,此時就是同步阻塞了。

當然,我們不會這樣幹,我們一般寄出去後,就去幹別的事了,然後過一段時間,再去看一下物流資訊,看看快遞到了沒,此時就是同步非阻塞了。

然後如果是我們在6.18,雙十一從購物**下了單,然後等待商家把快遞寄過來,如果此時我們啥也不幹,就躺著睡覺,然後等快遞小哥給我們打**,讓我們取快遞,此時就是非同步阻塞了。

實際情況,我們下單之後,我們就該幹嘛幹嘛去了,該上班上班,該吃飯吃飯,這樣啥也不耽誤,就等快遞小哥打**通知我們取快遞就行了,此時就是非同步非阻塞。

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

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

同步 非同步 阻塞 非阻塞

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

同步 非同步 阻塞 非阻塞

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