【发布时间】:2011-11-01 23:33:35
【问题描述】:
我总是听说 JavaScript 是单线程的;当 JavaScript 被执行时,它都在同一个全局 mosh 坑中运行,都在一个线程中。
虽然这可能是真的,但单个执行线程可能会产生新线程,将数据异步返回到主线程,对吗?例如,当发送一个 XMLHttpRequest 时,浏览器不是创建一个执行 HTTP 事务的新线程,然后在 XMLHttpRequest 返回时在主线程中调用回调吗?
定时器——setTimeout 和 setInterval 呢?这些是如何工作的?
这种单线程是语言的结果吗?是什么阻止了 JavaScript 在新的 Web Workers 草案之前进行多线程执行?
【问题讨论】:
-
javaScript 解释器经常共享浏览器 UI 线程
-
下次我说全局作用域时,我会用global mosh pit这个词:)