【发布时间】:2012-08-29 22:30:13
【问题描述】:
我有一个测试:
HTML:
<div id="f1">Empty</div>
<div id="f2">Empty</div>
js:
var s1 = function() {
for (i = 1; i < 1000000000; i++) {
var b = i * i;
}
$('#f1').html('Set');
}
var s2 = function() {
if ($('#f1').html() == 'Empty') {
$('#f2').html('Multi Thread');
return;
};
$('#f2').html('One Thread');
}
setTimeout(s2,110);
setTimeout(s1,100);
setTimeOut() 不是在不同的线程中运行,而是像事件模型那样运行,有什么真正的原因吗?
【问题讨论】:
-
因为javascript不是多线程的?
-
@PeeHaa 但为什么不呢?它至少有异步功能...
-
异步函数不需要线程,它们只需要能够对事件进行排队,并且有一个事件循环可以从该队列中取出并运行它们。
标签: javascript