在学习nodejs中对同步、异步和阻塞、非阻塞的理解

一切都要从nodejs的fs模块说起

nodejs刚开始学,今天学了fs,就是文件操作的模块,里面有和微信小程序类似的回调函数,但是今天听课时讲了点异步,之前不是很懂,趁现在好好研究一下。
概念有点抽象,用个网上的例子加自己理解就通了:

有一个事件,参与者有水壶、老王。

  • 老王酷爱喝茶,今天他想喝茶,要烧水。他拿了一个普通的水壶,开始烧水,他得等在水壶前,不然水壶会烧干,老王就喝不了茶了。这个叫做同步阻塞。
  • 老王觉得这样不行,太难等了,他时不时的去干其他事,时不时的出来看看水壶好了没。这个叫做同步非阻塞。
  • 老王有一天买了一个新的水壶(因为老王是个程序员,有钱买水壶 ),这个水壶在水烧好了会响,老王烧水时也在水壶面前看着。这个叫做异步阻塞。
  • 老王想,等水壶响了再来不就得了,老王在烧水时就去干其他事了。这个叫做异步非阻塞。

ok,四种情况都讲完了。这个例子也是网上看的,我觉得非常经典生动。
同步和异步是对水壶(消息)来说。关注的是消息的通信机制。同步只能让调用者(程序)去轮询自己,而异步的响水壶可以主动告诉调用者。

阻塞和非阻塞是对老王(程序)来说。关注的是调用者在等待结果时的状态。这个例子可能大家会发现,异步阻塞没啥用(第三种情况),老王还是得在水壶面前等,所以我觉得异步非阻塞才是比较有优势的。

而nodejs中,有大量的回调函数,都是异步的方式,这就给了nodejs很好的处理网络编程或者处理高并发的能力。而且还有npm,要什么有什么。nodejs未来前景很好啊
刚学的知识,有什么不对的大家一起讨论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值