码迷,mamicode.com
首页 > 其他好文 > 详细

用一个比喻来解释对 同步 异步 阻塞 非阻塞 轮询 回调 的理解

时间:2015-04-05 17:37:13      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:

大二时看《Thinking in java》里NIO时这几个概念就很含混,现在大四快毕业了,看《tomcat权威指南》时又得遇到这些概念,这次决定弄懂它。

如果直接从网上扒它们的定义,那我写这个博客就啥意义都没有了,还不如写一堆链接呢!而且用专门的定义解释对于很多人而言就是用术语解释术语,那他们就得继续谷歌不懂的名词了。所以我觉得还是用孟子的思想:用鱼和熊掌比喻一下生和义吧


打个比方,我在网上买了个东西,然后就等东西送到邮局去取了。就有这4种情况:

  1. 你立刻傻站在邮局门口等东西来

  2. 你继续做你要做的事,不会因为会有包裹影响正常生活该做的

  3. 东西邮到给你发短信

  4. 东西邮到没人吭声通知你


  1. 就是阻塞啦(因为会有包裹,你就专门等包裹来,包裹不到你就在邮局门口罢工!绝食!),

  2. 就是非阻塞啦(不会因为有包裹你就影响你正常生活和该做的工作)

  3. 就是异步啦(人家很敬业的通知你)

  4. 就是同步啦(暴走大世界里黑ems邮件堆成山却不通知人取就是这种情况啦)


然后排列组合,又有了这四种情况:

1.同步阻塞:包裹来了不通知你,你就傻站在邮局门口等包裹来了

2.同步非阻塞(轮询):你该干啥干啥,虽然人家不通知你,但你时不时的跑去邮局问问我包裹到了没.至于你是每天中午问呢还是每隔一小时就跑去问一次,那就看你有多能墨迹了

3.异步阻塞:虽然伦家会短信通知你,但你偏要在邮局门口傻站着等包裹到.有时间,就是这么任性!但我估计程序猿应该没谁会写出这么任性的代码吧?

4.异步非阻塞(回调):其实第一次听说要在邮局外面等邮件我是拒绝的,因为,你不能让我搁下所有工作,我就马上去邮局外面等邮件……等了一阵时间,手机,DUANG~~DUANG~~DUANG~~我的邮件到邮局里了


总之,异步都是用在非阻塞上,因为我还没见过谁写异步阻塞的程序,如果你狠任性,那就试着写个异步阻塞的程序感受一下吧!


其实我闲扯淡就是为了加深对这些术语概念的理解,可能解释的有漏洞,还望诸大神指正







用一个比喻来解释对 同步 异步 阻塞 非阻塞 轮询 回调 的理解

标签:

原文地址:http://my.oschina.net/tdONEmadao/blog/396288

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!