关于js的同步和异步
https://www.cnblogs.com/c3gen/p/6170504.html
同步就是顺序执行,异步就是不完全按顺序执行
https://segmentfault.com/a/1190000002999668
阻塞与非阻塞
这一点是我自己简单的理解。
-
阻塞
就是说一个程序没运行完,它后面的程序是无法运行的。 - 而
非阻塞
则相反,一个程序如果因为各种原因(网络、代码量等)没运行完的时候,其他的程序也是可以继续运行的。
单线程与多线程
这一点也是我自己的简单理解。
-
单线程
是指程序运行只有一个通道,不同的方法需要排队执行。 - 而很多语言都可以提供
多线程
的功能,相当于开了几个通道运行程序,使得程序可以在不同的线程中运行,不会相互影响。
JS 中的异步
有了上面的一些基本概念,那么下面来说说正题,JS中的异步。
我们都知道 JS 是一个单线程的语言,永远只有一个通道在运行程序。那么既然它是个单线程又如何会有异步呢?
JS 中所谓的异步,应该被称为伪异步(pseudo asynchronous)。这是因为 JS
语言中的异步,会产生阻塞,并会相互干扰。