计算机干活的两种方式

在日常工作中,事情通常是一件一件地去做,做完一件再做下一件。比如,有了需求之后才能开始设计产品原型,设计出了产品原型之后才能再拉大家一起来讨论业务需求,讨论清楚了才开始做。这种顺序或者线性做事的方式,在软件开发中叫做「同步模式」:也就是把A做完了再做B,把B做完了再做C。如果B没有做完,就会一直做B,直到做完为止。就像这样:


「同步」工作模式


再说得更明白点就是:狗蛋找黑娃有急事,但他忘记了黑娃的电话号码,于是就去找二丫,二丫也不记得黑娃的电话,就在自己的手机里翻了半天,也没翻出来。于是又问自己的闺蜜三丫、四丫......一直问到九丫都没问到。在二丫找电话号码的时候,狗蛋因为没有别的办法,只好干等着,也没法做其他的事情。这种「干等」的情况,在软件工程中有一个专有名词:叫「阻塞」——跟下水道被堵了是一个意思。

为了改进这种既让人着急又有点恶心的工作方式,科学家和工程师们的改进方法是:如果暂时做不了,那就先放着,去干点别的吧!

于是,软件的开发过程就变成了这样子:


「异步」工作模式


工程师们还给这种方式取了一个优雅的名字:「异步」模式(总不能说成「因为你不能干等着,所以干脆去干点别的」)。这个也很好理解:

还是狗蛋找黑娃的例子,狗蛋在等二丫找电话的同时,自己也没闲着,也在问自己的哥们山鸡,自己同时还在电话薄里找,相当于同时使用了三种方式寻找黑娃的电话。这比之前啥都不干的方式要好多了,不用等二丫有结果了之后再找自己的通讯录或去问山鸡。

这种「异步」的方式,在软件开发中同样有一个专有词:叫「非阻塞」。

所以:

同步模式 = 阻塞模式

异步模式 = 非阻塞模式

至于实现它们的代码,网上有无数行。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 从上大学第一天开始接触编程,老师便给我们讲过各式各样的算法。从各种查找、排序,到递归、贪心等算法,大一的时候一直在...
    程序兔子阅读 255评论 0 1
  • 从上大学第一天开始接触编程,老师便给我们讲过各式各样的算法。从各种查找、排序,到递归、贪心等算法,大一的时候一直在...
    飞__飞阅读 182评论 0 1
  • 1、TCP为什么需要3次握手,4次断开? “三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端...
    杰伦哎呦哎呦阅读 3,538评论 0 6
  • 2018-11-06 这一块操作系统主要分为两个部分,一个部分是书本上操作系统的知识,还有一部门是linux的相关...
    zuoerfeng阅读 2,271评论 0 1
  • 原文地址-程序员的自我修养(2)计算机网络 几乎所有的计算机程序,都会牵涉到网络通信。因此,了解计算机基础网络知识...
    EwdAger阅读 1,523评论 0 4