白话解说:阻塞和非阻塞,同步和异步

  1. 阻塞和非阻塞,同步和异步是node.js里经常遇到的词汇,举例说明:

    我要看足球比赛,但是妈妈叫我烧水,电视机在客厅,烧水要在厨房。家里有2个水壶,一个是普通的水壶,另一个是水开了会叫的那种水壶。我可以:

    1. 用普通的水壶烧,人在边上看着,水开了再去看球。(同步,阻塞)这个是常规做法,但是我看球不爽了。
    2. 用普通水壶烧,人去看球,隔几分钟去厨房看看。(同步,非阻塞)这个又大问题,万一在我离开的几分钟水开了,我就麻烦了。
    3. 用会叫的水壶,人在边上看着。(异步,阻塞)这个没有问题,但是我太傻了。
    4. 用会叫的水壶,人去看球,听见水壶叫了再去看。(异步,非阻塞)这个应该是最好的。

    等着看球的我:阻塞

    看着电视的我:非阻塞

    普通水壶:同步

    会叫的水壶:异步

    所以,异步往往配合非阻塞,才能发挥出威力。

阻塞和非阻塞

1.阻塞:

  就像单线程cpu一样,一个任务由多个小任务组成,
  但是只能一个任务接一个任务流程的往想下走,

  谁在任务排序的前面就谁先执行,
  执行完了进行下一个,

  如果遇到错误,下面的小任务就不要做了,一直卡住。


2.非阻塞:

  就像多线程cpu一样,一个任务由多个小任务组成,
  可以分开线程来做,

  每个线程做分配到的任务,完成了对应的任务就行,
  某个线程的任务没做完那就做报对应的错,

  其他的不受影响。
  1. 步:要做的事列了一个清单,按照清单上的顺序 一个一个执行。

    异步:就是可以同时干好几件事。

    阻塞:就是按照清单上的顺序一件一件的往下走,任意一件事没有做完,下面的事都干不了。

    非阻塞:就是有事没有作完,后面的事不会等这件事干完了再作,而是直接开始作下一件事,等这件事作完了,后面的事也作完了,这样就大大提高了效率。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值