同步与异步;串行、并发、并行;
同步执行:一个任务执行结束后执行下一个任务;串行是同步的执行方式;
异步执行:一个任务执行的过程中,另一个任务也会开始执行; 并发和并行是异步的两种执行方式;(并发不一定同时执行参考cpu单核时间片来回切换,并行才是同步执行参考cpu多核同时执行)
由于js只有一个线程,且它的执行基于时间循环;
所以,它的执行顺序是:
js先执行mainscript即在主线程上执行的代码,遇到异步任务比如说settimeout会交给浏览器由浏览器单独开辟一个新的浏览器线程去执行,等到计时结束,就把settimeout里的回调函数加入到任务队列里;
等到js主线程执行结束,也就是一个tick结束了,就会从任务队列读取任务并添加到主线程中同步执行,而这就是一个新的tick即nexttick;
总结,
js是同步执行的;js线程在执行一个任务的时候并不会暂停j去执行其他的任务,js线程专心执行当下的任务,执行结束后执行下一个任务;
浏览器的某个tab页是异步执行的,因为tab页是一个进程,除了js线程还有其他的浏览器线程,可以让多个任务同时执行。
分类:
随笔
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构