(本文从掘金小册整理) 首先介绍一下几个概念 进程与线程 相信大家经常会听到 JS 是单线程执行的,但是你是否疑惑过什么是线程? 讲到线程,那么肯定也得说一下进程。本质上来说,两个名词都是 CPU 工作时间片的一个描述。 进程描述了 CPU 在运行指令及加载和保存上下文所需的时间,放在 ...
概念 JavaScript 有一个基于事件循环的并发模型,事件循环负责执行代码 收集和处理事件以及执行队列中的子任务。这个模型与其它语言中的模型截然不同,比如 C 和 Java。 摘自MDN 简单地说,对于 JS 运行中的任务,JS 有一套处理收集,排队,执行的特殊机制,我们把这套处理机制称为事件循环 Event Loop 。 为了更深刻的理解事件循环,我们先了解几个相关概念 单线程 我们都知道 ...
2020-05-17 20:17 0 4632 推荐指数:
(本文从掘金小册整理) 首先介绍一下几个概念 进程与线程 相信大家经常会听到 JS 是单线程执行的,但是你是否疑惑过什么是线程? 讲到线程,那么肯定也得说一下进程。本质上来说,两个名词都是 CPU 工作时间片的一个描述。 进程描述了 CPU 在运行指令及加载和保存上下文所需的时间,放在 ...
一、JavaScript是单线程单并发语言 什么是单线程 主程序只有一个线程,即同一时间片断内其只能执行单个任务。 为什么选择单线程? JavaScript的主要用途是与用户互动,以 ...
1. 事件循环(event-loop)是什么? 总方针是先同步再异步,异步中先微任务,在宏任务。 macro-task(宏任务):setTimeout,setInterval micro-task(微任务):Promise.then/catch,process.nextTick ...
时间才能返回的任务,如I/O事件)的时候,主线程会挂起(pending)这个任务,然后在异步任务返回结果的时候 ...
,但其依然只是主线程的子线程,并不能执行诸如I/O类的操作。长期来看,JS将一直是单线程。 为何非阻塞 ...
javascript从诞生之日起就是一门 单线程的 非阻塞的 脚本语言,单线程意味着,javascript代码在执行的任何时候,都只有一个主线程来处理所有的任务,非阻塞靠的就是 event loop(事件循环),本文就讲解下事件循环。 event loop它最主要是分三部分:主线程、宏队列 ...
setTimeout(()=>{ console.log('timer1') Promise.resolve().then(function() { ...
今天要介绍的是node的事件循环机制,他是一些交互系统的基本概念,他更是javascript语言核心的一部分。因为对于使用浏览器的用户,javascript就是通过处理用户的click,mouse等相关的事件来处理用户的请求的。对于像node这样的服务器来说,事件循环也同样起到相当重要的作用 ...