舉例說同步異步阻塞非阻塞機制

 劫匪衝進某花園小別墅,端着AK47,向某衰男甩過去一個袋子:說,快,把現金拿出來給我放進去,這個時候劫匪一直跟着衰男去裝錢,看錢裝滿了他就拿走,此時劫匪是阻塞 的,因爲劫匪不能幹其他的,得看着這個衰男,免得他搞鬼。

   想象下,如果劫匪等衰男自己去裝錢,在錢裝滿之前,他自己可以到處翻箱倒櫃,找點值錢的首飾黃金之類的,那麼這個時候劫匪就是非阻塞 的,因爲劫匪並沒有阻塞在衰男去裝錢這個環節上,劫匪可以自由活動做點其他的小買賣。

      再來回顧下上面的情節,如果劫匪在搶劫時需要不時自己看看衰男把錢裝好了沒有,那麼此時劫匪是在同步 工作,因爲他在等待衰男把錢裝好,自己要不停的關注下。

      當然,劫匪可以給衰男說:把錢裝好了,你自己過來找我。這個時候劫匪可以繼續等着不做其他的事情,也可以去做點其他的事情,但是劫匪可以不用去看衰男是否把錢裝好,因爲衰男錢裝好了會自動通知劫匪:大哥,錢好了,你拿走吧。這個時候劫匪就是異步 在工作,他提供了一個callback機制給衰男。

 

   可以總結下了:

     同步/異步:   消息通知機制相關=>需要自己關注還是提供callback

     阻塞/非阻塞:等待消息時的狀態=>是否可以幹別的事情

 

可以相互組合:

同步阻塞: 劫匪看着衰男把錢裝好,不能幹其他事情

同步非阻塞:劫匪自己也到處搜索寶貝,但是還要不時跑回來看看錢裝好沒有。

異步非阻塞:劫匪自己也到處搜索寶貝,衰男把錢裝好了自動過來告訴劫匪好了

異步阻塞:  劫匪就在那裏傻等着,也不用管錢是否裝好,衰男把錢裝好了自動過來告訴劫匪好了 

發佈了74 篇原創文章 · 獲贊 5 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章