如何使用C ++中的V8同时运行一堆JS代码?

时间:2016-09-23 10:01:24

标签: javascript c++ v8

我必须使用围绕V8的C ++包装器来处理大量的JS脚本,我需要并行执行。

例如,我有两个脚本A和B.我已经使用C ++ V8函数编译了这些脚本,并希望并行运行或至少以异步方式运行它们,以便脚本B不等待脚本A将完成。

现在我正在考虑使用线程,但在这种情况下我必须使用互斥锁,这意味着代码将运行(不是我想要的)。

也许有一些能力使用V8从C ++异步运行js代码.. 无论如何,我有什么方法可以运行多个脚本并且它们可以并行工作吗?

1 个答案:

答案 0 :(得分:0)

为了同时执行两个javascript线程,它们必须位于不同的v8 :: Isolate中。这意味着他们无法共享任何数据或具有任何共享依赖关系。

这还需要使用v8 :: Locker来锁定隔离区在运行时被另一个上下文使用。

是否使用其他互斥锁取决于程序的数据要求,但在v8中运行多个执行线程不是必需的 - 只是每个线程的隔离。