-3

setInterval 中的代码是并行执行的吗?

4

3 回答 3

0

不,不是的。在浏览器的 javascript 中,除非您使用Web Workers,否则只有一个线程。

于 2013-04-02T10:46:20.530 回答
0

不,它的行为不像线程。

发生的情况如下:

您执行以下内容:

setTimeout(function(){
    console.log("bar");
}, 10);
console.log("foo");

它将将该 setTimeout 参数中的函数添加到队列中,将执行“foo”的日志记录,然后将挖掘队列以查找接下来将发生的事件。

然后它将执行console.log("bar");

在内部它看起来像:

console.log("foo");
// waiting for 10 ms unless another event is getting fired
console.log("bar");

这是非常抽象的,但基本上会发生什么。

正如thejh 已经回答的那样,您搜索的是网络工作者。

于 2013-04-02T10:50:39.617 回答
0

它不会像您期望的从另一个线程分离时那样并行执行,但是它异步的,因为回调不一定会以线性方式发生。

这对您有何影响,我们无法确定,因为您没有提供任何有关您的问题的有意义的信息或您为什么想要这个问题的答案。

于 2013-04-02T10:50:49.240 回答