计算机干活的两种方式

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

 

 

 

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

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

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

 

 

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

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

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

所以:

同步模式 = 阻塞模式

异步模式 = 非阻塞模式

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

 

posted @   湘王  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示