劫匪冲进某花园小别墅, 端着 AK47, 向某衰男甩过去一个袋子: 说, 快, 把现金拿出来给我放进去, 这个时候劫匪一直跟着衰男去装钱, 看钱装满了他就拿走, 此时劫匪是阻塞 的, 因为劫匪不能干其他的, 得看着这个衰男, 免得他搞鬼
想象下, 如果劫匪等衰男自己去装钱, 在钱装满之前, 他自己可以到处翻箱倒柜, 找点值钱的首饰黄金之类的, 那么这个时候劫匪就是非阻塞 的, 因为劫匪并没有阻塞在衰男去装钱这个环节上, 劫匪可以自由活动做点其他的小买卖
再来回顾下上面的情节, 如果劫匪在抢劫时需要不时自己看看衰男把钱装好了没有, 那么此时劫匪是在同步 工作, 因为他在等待衰男把钱装好, 自己要不停的关注下
当然, 劫匪可以给衰男说: 把钱装好了, 你自己过来找我这个时候劫匪可以继续等着不做其他的事情, 也可以去做点其他的事情, 但是劫匪可以不用去看衰男是否把钱装好, 因为衰男钱装好了会自动通知劫匪: 大哥, 钱好了, 你拿走吧这个时候劫匪就是异步 在工作, 他提供了一个 callback 机制给衰男
可以总结下了:
同步 / 异步: 消息通知机制相关 => 需要自己关注还是提供 callback
阻塞 / 非阻塞: 等待消息时的状态 => 是否可以干别的事情
可以相互组合:
同步阻塞: 劫匪看着衰男把钱装好, 不能干其他事情
同步非阻塞: 劫匪自己也到处搜索宝贝, 但是还要不时跑回来看看钱装好没有
异步非阻塞: 劫匪自己也到处搜索宝贝, 衰男把钱装好了自动过来告诉劫匪好了
异步阻塞: 劫匪就在那里傻等着, 也不用管钱是否装好, 衰男把钱装好了自动过来告诉劫匪好了
来源: http://www.bubuko.com/infodetail-2532552.html