为什么现代的浏览器JS引擎是多线程的?

最大限度

我了解现代浏览器的JS引擎(例如V8,Spidermonkey,Chakra等)在内部使用线程池,即使JS程序员只暴露了一个线程(运行事件循环)也是如此。

显然,(很少使用的)Web Workers需要多个线程(或多个进程)-否则他们将无法利用多个CPU内核。我的问题是,除了Web Workers之外,用多线程实现JS引擎有什么好处?

为什么JS引擎无法通过内部依赖JS程序员使用的同一事件循环,在需要执行任何IO时使用非阻塞OS调用而始终保持单线程状态?

需要说明的是:即使用户仅使用一个选项卡打开了一个窗口,JS引擎仍使用线程池。

编辑:这是在这里回答

贝吉

脚本引擎的许多部分都受益于并行化,因为它们可以针对脚本的不同部分或相对于彼此并发运行:

  • 解析
  • 汇编
  • JIT,优化
  • 调试/记录/分析
  • 垃圾收集
  • 图形

而且,这甚至不涉及针对不同使用环境(工作脚本,浏览上下文)在引擎的多个实例之间进行共享。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么在现代浏览器中禁用管道传输?

来自分类Dev

为什么现代的网络浏览器不支持XSLT 2.0?

来自分类Dev

现代浏览器检测?

来自分类Dev

浏览器的JavaScript和多线程用于异步操作?

来自分类Dev

为什么JavaScript在常见的浏览器中没有得到自己的线程?

来自分类Dev

为什么我的浏览器在线程中的类和id之间没有区别?

来自分类Dev

为什么浏览器允许CSRF?

来自分类Dev

在现代浏览器中禁用SNI

来自分类Dev

有什么原因为什么我不应该在2016年后的现代浏览器中使用window.postMessage API?

来自分类Dev

在现代浏览器中上传文件的最佳方法是什么

来自分类Dev

基于浏览器引擎应用 CSS?

来自分类Dev

浏览器引擎如何工作?

来自分类Dev

为什么以下JS函数破坏了浏览器进程?

来自分类Dev

为什么浏览器无法从`../ lib /`(相对)位置找到js文件?

来自分类Dev

为什么使用Bootstrap时zombie.js浏览器会返回空HTML?

来自分类Dev

当我从浏览器修改html / js时,为什么多次发送ajax请求

来自分类Dev

为什么浏览器在路由/ URL更改时显示缓存的Vue.js视图?

来自分类Dev

为什么我定义了js函数,但无法找到该函数的浏览器提示?

来自分类Dev

为什么anime.js 在我的浏览器中不起作用?

来自分类Dev

React.js:为什么我在浏览器上看不到 HTML 内容?

来自分类Dev

为什么Ubuntu 14.04 Trusty Tahr的浏览器浏览器仍然是53版?

来自分类Dev

为什么我的搜索引擎切换为必应?(浏览器重定向)

来自分类Dev

为什么搜索重定向到“ SuddenLink.net”,而不是我的默认浏览器搜索引擎?我可以防止这种情况吗?

来自分类Dev

Windows 10中的HTML5 / Javascript Universal Apps使用的浏览器引擎是什么?

来自分类Dev

jsbin.com上的浏览器JavaScript引擎出了什么问题?

来自分类Dev

为什么不能粘贴到BrowserStack浏览器?

来自分类Dev

为什么浏览器的HTTP / 2实现需要TLS?

来自分类Dev

为什么jQuery与浏览器对破损标记的解释不同?

来自分类Dev

为什么浏览器中没有输出?

Related 相关文章

  1. 1

    为什么在现代浏览器中禁用管道传输?

  2. 2

    为什么现代的网络浏览器不支持XSLT 2.0?

  3. 3

    现代浏览器检测?

  4. 4

    浏览器的JavaScript和多线程用于异步操作?

  5. 5

    为什么JavaScript在常见的浏览器中没有得到自己的线程?

  6. 6

    为什么我的浏览器在线程中的类和id之间没有区别?

  7. 7

    为什么浏览器允许CSRF?

  8. 8

    在现代浏览器中禁用SNI

  9. 9

    有什么原因为什么我不应该在2016年后的现代浏览器中使用window.postMessage API?

  10. 10

    在现代浏览器中上传文件的最佳方法是什么

  11. 11

    基于浏览器引擎应用 CSS?

  12. 12

    浏览器引擎如何工作?

  13. 13

    为什么以下JS函数破坏了浏览器进程?

  14. 14

    为什么浏览器无法从`../ lib /`(相对)位置找到js文件?

  15. 15

    为什么使用Bootstrap时zombie.js浏览器会返回空HTML?

  16. 16

    当我从浏览器修改html / js时,为什么多次发送ajax请求

  17. 17

    为什么浏览器在路由/ URL更改时显示缓存的Vue.js视图?

  18. 18

    为什么我定义了js函数,但无法找到该函数的浏览器提示?

  19. 19

    为什么anime.js 在我的浏览器中不起作用?

  20. 20

    React.js:为什么我在浏览器上看不到 HTML 内容?

  21. 21

    为什么Ubuntu 14.04 Trusty Tahr的浏览器浏览器仍然是53版?

  22. 22

    为什么我的搜索引擎切换为必应?(浏览器重定向)

  23. 23

    为什么搜索重定向到“ SuddenLink.net”,而不是我的默认浏览器搜索引擎?我可以防止这种情况吗?

  24. 24

    Windows 10中的HTML5 / Javascript Universal Apps使用的浏览器引擎是什么?

  25. 25

    jsbin.com上的浏览器JavaScript引擎出了什么问题?

  26. 26

    为什么不能粘贴到BrowserStack浏览器?

  27. 27

    为什么浏览器的HTTP / 2实现需要TLS?

  28. 28

    为什么jQuery与浏览器对破损标记的解释不同?

  29. 29

    为什么浏览器中没有输出?

热门标签

归档