JavaScript中复杂的事件循环机制是如何在多任务并发中高效运行的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1680个文字,预计阅读时间需要7分钟。
JavaScript是一种单线程的非阻塞脚本语言,只有一个主线程来处理任务。非阻塞意味着JS引擎执行异步任务时,不会直接等待结果返回,主线程可以继续执行其他任务。异步任务执行时,主线程不会挂起(pending),而是继续执行其他任务。
javascript是单线程的非阻塞的脚本语言
单线程
只有一个主线程来处理任务。
非阻塞
JS引擎执行异步任务时,不会一直等待返回结果,主线程会挂起(pending)这个任务,继续执行其他任务,当异步任务返回结果时,js将异步任务的callback放到任务队列中,等到当前任务栈中的任务都执行完毕,处于闲置状态的主线程按照队列顺序将队首的calback函数加入到执行栈中,执行该函数的同步代码,如果又遇到异步任务,再将其回调函数加入到队列中–事件循环机制。
本文共计1680个文字,预计阅读时间需要7分钟。
JavaScript是一种单线程的非阻塞脚本语言,只有一个主线程来处理任务。非阻塞意味着JS引擎执行异步任务时,不会直接等待结果返回,主线程可以继续执行其他任务。异步任务执行时,主线程不会挂起(pending),而是继续执行其他任务。
javascript是单线程的非阻塞的脚本语言
单线程
只有一个主线程来处理任务。
非阻塞
JS引擎执行异步任务时,不会一直等待返回结果,主线程会挂起(pending)这个任务,继续执行其他任务,当异步任务返回结果时,js将异步任务的callback放到任务队列中,等到当前任务栈中的任务都执行完毕,处于闲置状态的主线程按照队列顺序将队首的calback函数加入到执行栈中,执行该函数的同步代码,如果又遇到异步任务,再将其回调函数加入到队列中–事件循环机制。

