美文网首页日常刻书
异步编程的困惑

异步编程的困惑

作者: F_wind | 来源:发表于2020-12-30 10:29 被阅读0次

    《深入浅出 Node.js》阅读随笔

    众所周知,Node.js 虽然也有部分同步编程的方式,但主要还是以后异步编程为主。这在给它提供性能优势的同时,也带来了不少困惑。毕竟主流的编程模式一直都是同步编程。

    • 聊聊同步编程
      同步编程更符合人类线性思维的方式,代码一行一行执行,如果想有效利用计算机资源,需要建立多个线程,涉及到同步、锁等概念,但是线程之间切换存在一定的开销。例如访问两个同步接口 A 和 B ,那么消耗的总时间是 A+B 的时间。

    • 聊聊异步编程
      异步编程会有更好的 I/O 性能优势,就拿上面同步的例子来说,在异步情况下,消耗的总时间取决于 A 和 B 当中的较大者。但在编码的过程中,并不符合人类的常规思维,第一行写的代码,可能会在第二行完成以后,才执行完毕。

    • 何以解惑
      事实上,Node.js 之所以可以流行起来,是在因为异步编程中存在的问题,得到了一定程度的解决。比如通过事件的发布/订阅模式、promise/async/await 以及优秀的同步包等。

    相关文章

      网友评论

        本文标题:异步编程的困惑

        本文链接:https://www.haomeiwen.com/subject/zkncoktx.html