[转]举例说同步异步阻塞非阻塞机制

简介:

劫匪冲进某花园小别墅,端着AK47,向某衰男甩过去一个袋子:说,快,把现金拿出来给我放进去,这个时候劫匪一直跟着衰男去装钱,看钱装满了他就拿走,此时劫匪是阻塞 的,因为劫匪不能干其他的,得看着这个衰男,免得他搞鬼。

   想象下,如果劫匪等衰男自己去装钱,在钱装满之前,他自己可以到处翻箱倒柜,找点值钱的首饰黄金之类的,那么这个时候劫匪就是非阻塞 的,因为劫匪并没有阻塞在衰男去装钱这个环节上,劫匪可以自由活动做点其他的小买卖。

      再来回顾下上面的情节,如果劫匪在抢*劫时需要不时自己看看衰男把钱装好了没有,那么此时劫匪是在同步 工作,因为他在等待衰男把钱装好,自己要不停的关注下。

      当然,劫匪可以给衰男说:把钱装好了,你自己过来找我。这个时候劫匪可以继续等着不做其他的事情,也可以去做点其他的事情,但是劫匪可以不用去看衰男是否把钱装好,因为衰男钱装好了会自动通知劫匪:大哥,钱好了,你拿走吧。这个时候劫匪就是异步 在工作,他提供了一个callback机制给衰男。

 

   可以总结下了:

     同步/异步:   消息通知机制相关=>需要自己关注还是提供callback

     阻塞/非阻塞:等待消息时的状态=>是否可以干别的事情

 

可以相互组合:

同步阻塞: 劫匪看着衰男把钱装好,不能干其他事情

同步非阻塞:劫匪自己也到处搜索宝贝,但是还要不时跑回来看看钱装好没有。

异步非阻塞:劫匪自己也到处搜索宝贝,衰男把钱装好了自动过来告诉劫匪好了

异步阻塞:  劫匪就在那里傻等着,也不用管钱是否装好,衰男把钱装好了自动过来告诉劫匪好了 

 

 

转载地址:http://blog.csdn.net/kevinofneu/article/details/39359635


相关文章
|
7月前
|
存储 前端开发 JavaScript
【面试题】面试官问:如果有100个请求,你如何使用Promise控制并发?
【面试题】面试官问:如果有100个请求,你如何使用Promise控制并发?
151 0
|
7月前
|
存储 前端开发 JavaScript
面试官问:如果有100个请求,你如何使用Promise控制并发?
面试官问:如果有100个请求,你如何使用Promise控制并发?
379 0
|
7月前
|
JavaScript 前端开发 Java
流的概念,怎么处理
流的概念,怎么处理
|
并行计算 安全 Java
【JavaSE专栏80】多线程通信,多个线程之间如何实现信息传递和同步?
【JavaSE专栏80】多线程通信,多个线程之间如何实现信息传递和同步?
132 0
|
消息中间件 存储 中间件
消息流是指在计算机系统中,消息从一个地方传递到另一个地方的过程
消息流是指在计算机系统中,消息从一个地方传递到另一个地方的过程
86 1
三个线程按顺序打印ABC?十二种做法,深入多线程同步通信机制
大家好,我是老三,这篇文章分享一道非常不错的题目:三个线程按序打印ABC。 很多读者朋友应该都觉得这道题目不难,这次给大家带来十二种做法,一定有你没有见过的新姿势。
异步思维——把请求与解析分开
异步思维——把请求与解析分开
64 0
|
JavaScript
浅谈同步、异步、回调函数之间的关系?
同步:发出一个调用时,在没有得到结果之前,该调用就不返回;一旦调用返回,就得到返回值。换句话说,就是由调用者主动等待这个调用的结果。
620 0
|
JavaScript 前端开发
测理论--异步与回调的关联和区别
异步与回调的关联和区别
188 0
|
Java 开发者
同步问题引出|学习笔记
快速学习 同步问题引出
同步问题引出|学习笔记