关于js的同步和异步

https://www.cnblogs.com/c3gen/p/6170504.html


同步就是顺序执行,异步就是不完全按顺序执行

关于js的同步和异步

关于js的同步和异步

https://segmentfault.com/a/1190000002999668

阻塞与非阻塞

这一点是我自己简单的理解。

  • 阻塞就是说一个程序没运行完,它后面的程序是无法运行的。
  • 非阻塞则相反,一个程序如果因为各种原因(网络、代码量等)没运行完的时候,其他的程序也是可以继续运行的。

单线程与多线程

这一点也是我自己的简单理解。

  • 单线程是指程序运行只有一个通道,不同的方法需要排队执行。
  • 而很多语言都可以提供多线程的功能,相当于开了几个通道运行程序,使得程序可以在不同的线程中运行,不会相互影响。


JS 中的异步

有了上面的一些基本概念,那么下面来说说正题,JS中的异步。
我们都知道 JS 是一个单线程的语言,永远只有一个通道在运行程序。那么既然它是个单线程又如何会有异步呢?
JS 中所谓的异步,应该被称为伪异步(pseudo asynchronous)。这是因为 JS 语言中的异步,会产生阻塞,并会相互干扰。