完整答案:”https://www.zhihu.com/question/19732473
栗子
你打電話問書店老板有沒有《分布式系統(tǒng)》這本書,
- 如果是同步通信機制,書店老板會說,你稍等,”我查一下",然后開始查啊查,等查好了(可能是5秒,也可能是一天)告訴你結(jié)果(返回結(jié)果)。
- 而異步通信機制,書店老板直接告訴你我查一下啊,查好了打電話給你,然后直接掛電話了(不返回結(jié)果)。然后查好了,他會主動打電話給你。在這里老板通過“回電”這種方式來回調(diào)。
- 你如果是阻塞式調(diào)用,你會一直把自己“掛起”,直到得到這本書有沒有的結(jié)果,
- 如果是非阻塞式調(diào)用,你不管老板有沒有告訴你,你自己先一邊去玩了, 當(dāng)然你也要偶爾過幾分鐘check一下老板有沒有返回結(jié)果。在這里阻塞與非阻塞與是否同步異步無關(guān)。跟老板通過什么方式回答你結(jié)果無關(guān)。
- 同步阻塞:你打電話問老板有沒有某書,老板去查,在老板給你結(jié)果之前,你一直拿著電話等待老板給你結(jié)果,你此時什么也干不了。
- 同步非阻塞:你打電話過去后,在老板給你結(jié)果之前,你拿著電話等待老板給你結(jié)果,但是你拿著電話等的時候可以干一些其他事,比如嗑瓜子。
- 異步阻塞:你打電話過去后,老板去查,你掛掉電話,等待老板給你打電話通知你,這是異步,你掛了電話后還是啥也干不了,只能一直等著老板給你打電話告訴你結(jié)果,這是阻塞。
- 異步非阻塞:你打電話過去后,你就掛了電話,然后你就想干嘛干嘛去。只用時不時去看看老板給你打電話沒。