V8 javascript引擎是否有GIL?

我读到V8 Javascript引擎是一个即时编译器。 PyPy是一个Python解释器,也是一个即时编译器。 PyPy以存在多线程的GIL而闻名。

V8 Javascript引擎是否具有相当于全局解释器锁(GIL)的功能来处理Web工作线程?

所有的动态语言在处理多核问题时都会遇到问题,如果有的话,为什么JIT编译器在GIL方面有问题?


Chromium Web Workers是在V8隔离区之上实现的。 每个隔离本质上都是一个完全独立的V8 VM实例。 许多隔离可以在同一个进程中共存并且同时执行JavaScript代码。

但是,每个隔离只能由任何给定时刻的单个线程拥有。 有一个隔离级别锁定机制,嵌入程序必须使用它来确保独立访问隔离。


为了回答你的最后一个问题,我不认为GIL必须在动态解释或JIT编译语言中出现。 例如,PyPy已经在使用软件事务内存来消除GIL方面做了一些初步工作。 PyPy和CPython拥有GIL的事实更多地与它们历史上早些时候做出的设计决策以及其内部数据结构不是线程安全的事实有关。

链接地址: http://www.djcxy.com/p/43675.html

上一篇: Does the V8 javascript engine have a GIL?

下一篇: Force Internet Explorer 9 to execute javascript while parsing page?