我有一个测试:
HTML:
<div id="f1">Empty</div>
<div id="f2">Empty</div>
?
Run Code Online (Sandbox Code Playgroud)
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);?
Run Code Online (Sandbox Code Playgroud)
是否有任何真正的理由为什么setTimeOut()不能在不同的线程中运行,而是像事件模型一样?
DVK*_*DVK 16
Javascript本身不是多线程的,也不是非多线程的.但是,目前在主流浏览器中实现的Javascript的具体实现大多是单线程的.
此外,对于正确的多线程,语言需要具有共享内存,锁,信号量和其他并发编程工具的工具,当前定义的JavaScript没有(例如,没有办法描述并发JS线程如何控制谁更新DOM对象当然是共享的,因为窗口中只有一个DOM).
有人企图让JS更并行-看网络工作者,英特尔的河足迹,谷歌的HTML5工作和更多.
| 归档时间: |
|
| 查看次数: |
11584 次 |
| 最近记录: |