【发布时间】:2021-03-14 22:23:11
【问题描述】:
我不太明白 V8 是如何处理这种代码的,
它是否为变量“a”分配堆内存?
它是否使用互斥锁来保护变量?
有人可以在这个例子中阐明 V8 的内部工作原理吗?
提前谢谢你
let f, g;
function scope() {
let a = 1;
f = async function() {
a = 2;
}
g = function() {
return a;
}
};
scope();
f().then( _ => console.log(g()) ); // print 2
【问题讨论】:
-
JavaScript is single threaded。你不需要互斥体。
-
好的,那么异步函数是如何工作的?
-
异步函数与time slicing并发运行。
-
好的,谢谢您的帮助。所以每个 X 指令 javascript 都会检查一个队列或其他东西,看看是否有异步函数可以同时执行?
标签: javascript v8