同步与异步

1.同步行为和异步行为的对立统一是计算机科学的一个基本概念。
2.特别是在 JavaScript 这种单线程事件循环模型中,同步操作与异步操作更是代码所要依赖的核心机制。异步行为是为了优化因计算量大而时间长的操作。
3.如果在等待其他操作完成的同时,即使运行其他指令,系统也能保持稳定,那么这样做就是务实的。
4.重要的是,异步操作并不一定计算量大或要等很长时间。
5.只要你不想为等待某个异步操作而阻塞线程执行,那么任何时候都可以使用。
6.同步行为对应内存中顺序执行的处理器指令。
7.每条指令都会严格按照它们出现的顺序来执行,而每条指令执行后也能立即获得存储在系统本地(如寄存器或系统内存)的信息。
8.这样的执行流程容易分析程序在执行到代码任意位置时的状态(比如变量的值)。
9.同步操作的例子可以是执行一次简单的数学计算
let x = 3;
x = x + 4;
10.在程序执行的每一步,都可以推断出程序的状态。
11.这是因为后面的指令总是在前面的指令完成后才会执行。
12.等到最后一条指定执行完毕,存储在 x 的值就立即可以使用。
13.这两行 JavaScript 代码对应的低级指并不难想象。
14.首先,操作系统会在栈内存上分配一个存储浮点数值的空间,然后针对这个值做一次数学计算,再把计算结果写回之前分配的内存中。
15.所有这些指令都是在单个线程中按顺序执行的。
16.在低级指令的层面,有充足的工具可以确定系统状态。
17.相对地,异步行为类似于系统中断,即当前进程外部的实体可以触发代码执行。
18.异步操作经常是必要的,因为强制进程等待一个长时间的操作通常是不可行的(同步操作则必须要等)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值