一个是消息队列一个是微任务队列一个是调用栈当调用栈为空的时候 就会首先执行微任务然后消息队列最后输出微任务指promise与resolve钩
原创
2022-08-19 11:44:01
70阅读
1.开始循环event_base_loop 三种模式:不管哪种模式,如果没有Event加入,event_base_loop 都将直接返回。EVLOOP_ONCE: 如果没有event
原创
2022-11-17 00:07:02
121阅读
console.log('1111');setTimeout(() => {console.log('4444');new Promise((resolve) => {console.log('5555');resolve();}).then(() => {console.log('6666')})})new Promise((resol...
转载
2022-03-29 13:39:11
94阅读
console.log('1111');setTimeout(() => {console.log('4444');new Promise((resolve) => {console.log('5555');resolve();}).then(() => {console.log('6666')})})new Promise((resol...
转载
2021-06-30 14:26:38
126阅读
众所周知 JS 是门非阻塞单线程语言,因为在最初 JS 就是为了和浏览器交互而诞生的。如果 JS 列中。一旦...
原创
2023-01-03 14:53:49
124阅读
javascript从诞生之日起就是一门 单线程的 非阻塞的 脚本语言,单线程意味着,javascript代码在执行的任何时候,都只有一个主线程来处理所有的任务,非阻塞靠的就是 event loop(事件循环),本文就讲解下事件循环。event loop它最主要是分三部分:主线程、宏队列(macrotask)、微队列(microtask)js的任务队列分为同步任务和异步任务,所有的同步任务都是在主线程里执行的,异步任务可能会在macrotask或者microtask里面宏队列(macrot...
原创
2021-11-29 16:31:25
138阅读
队列:先进先出 栈:后进先出 javascript的Event Loop 和 Node.js的Event Loop 区别: js(运行在浏览器),有主线程、异步任务队列的概念; node.js使用libuv库执行,不同的任务分配给不同的线程,形成一个Event Loop(事件循环),以异步的方式将任
转载
2017-10-18 14:17:00
85阅读
2评论
前言 Event Loop是计算机系统的一种运行机制,是个很重要的概念。而JavaScript用这种机制来解决单线程运行带来的问题。理解很熟悉将会有利于我们更容易理解vue的异步事件。 JavaScript是单线程的 1、什么是单线程? 单线程在程序执行时,所走的程序路径按照连续顺序排下来,前面的必
转载
2020-12-12 14:21:00
134阅读
2评论
引子 几乎在每一本js相关的书籍中,都会说js是单线程的,JS是通过事件队列(Event Loop)的方式来实现异步回调的。 对很多初学JS的人来说,根本搞不清楚单线程的JS为什么拥有异步的能力,所以,我试图从进程、线程的角度来解释这个问题。 CPU 说到CPU和进程、线程,对计算机操作系统有过学习
转载
2020-12-10 12:32:00
110阅读
2评论
一、JavaScript是单线程 JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。 JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操 ...
转载
2021-07-27 11:38:00
106阅读
2评论
事件循环(Event Loop)是 JavaScript 实现非阻塞异步编程的核心机制。它负责管理代码的执行顺序,确保主线程不被耗时任务阻塞,同时处理异步任务(如定时器、网络请求、用户交互等)。核心概念1. 调用栈(Call Stack)单线程执行:JavaScript 是单线程语言,所有同步代码按顺序执行,形成一个“调用栈”。后进先出(LIFO):函数调用被压入栈顶,执行完毕后弹出。示例:fun
Event Loop进程和线程(都是 CPU 工作时间片的一个描述)进程描述了 CPU 在运行指令及加载和保存上下文所需的时间
原创
2022-11-17 00:21:30
92阅读
文章console.log('1');
setTimeout(function() {
console.log('2');
process.nextTick(function() {
console.log('3');
})
new Promise(function(resolve) {
console.log('4');
转载
2021-05-24 17:22:00
798阅读
2评论
什么是 Event Loop Event Loop 是一个很重要的概念,指的是计算机系统的一种运行机制。 JavaScript语言就采用这种机制,来解决单线程运行带来的一些问题。 大神:阮一峰 做了很详细的讲解。 《UNIX网络编程》 UNIX系统的IO模型
转载
2016-08-30 11:46:00
108阅读
2评论
Event Loop 一、线程与进程 JS 是单线程执行的,指的是一个进程里只有一个主线程 1.1.概念 进程是 CPU资源分配的最小单位;线程是 CPU调度的最小单位 进程好比工厂,有单独的专属自己的工厂资源。 线程好比工人,多个工人在一个工厂中协作工作,工厂与工人是 1:n的关系。也就是说一个进 ...
转载
2021-10-12 01:19:00
101阅读
2评论
本文章参考阮一峰大佬对 Event Loop 详解一、什么是事件循环(EVENT LOOP)Event Loop 是一个很重要的概念,指的是计算机系统的一种运行机制。任务队列( Event Queue )任务可以分为同步任务和异步任务,同步任务,顾名思义,就是立即执行的任务,同步任务一般会直接进入到主线程中执行;而异步任务,就是异步执行的任务,比如ajax网络请求,setTimeout 定时函数等
转载
2021-01-16 16:56:59
484阅读
2评论
原文: https://blog.csdn.net/sjn0503/article/details/76087631 简单来讲,整体的js代码这个macrotask先执行,同步代码执行完后有microtask执行microtask,没有microtask执行下一个macrotask,如此往复循环至结
转载
2018-05-28 09:51:00
187阅读
2评论
Event Loop事件循环简介JavaScript 是单线程的,由于单线程会造成I/O阻塞,比如发送请求时未响应就可能造成页面停滞,为了解决这个问题,浏览器开始支持异步JS,异步JS就是把一些异步任务(ajax、定时器)等放到任务队列中,然后通过事件循环不断读取、触发任务队列中的异步代码,这种机制就叫做事件循环Event Loop。Event Loop的核心代码是采用c++写的(属于NodeJs
转载
2021-01-31 20:52:59
264阅读
2评论
Event Loop先举一个列子console.log('start');setTimeout(() => { console.log('timeout');});Promise.resolve().then(() => { console.log('resolve');});console.log('end');刚开始整个脚本作为一个宏任务来执行,对于...
原创
2022-10-13 16:53:28
76阅读
js是单线程语言,多线程的实现是通过事件循环机制实现的 event loop
原创
2022-08-05 22:13:50
62阅读