异步函数一定是开子线程来实现吗?
我们知道js中有setTimeout()方法,js又是单线程的语言,不是通过子线程方式来实现异步的吧?是怎么实现异步的呢?
异步函数一定是开子线程来实现吗?
我们知道js中有setTimeout()方法,js又是单线程的语言,不是通过子线程方式来实现异步的吧?是怎么实现异步的呢?
js又是单线程的语言
js 并不是只有一个线程的。这是程序员只能用到一个线程。异步的工作是在单独的线程里完成的。
比如 node.js
Node.js has two types of threads: one Event Loop and k Workers. The Event Loop is responsible for JavaScript callbacks and non-blocking I/O, and a Worker executes tasks corresponding to C++ code that completes an asynchronous request, including blocking I/O and CPU-intensive work.
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
setTimeout
,setInterval
,包括时间循环都依赖 Event Loop 机制