使用Google的v8 c++库,我希望创建一个上下文,其中我定义了几个模板、变量和全局,供代码中可能运行在不同线程上的几个位置使用,每个线程都有自己的独立线程,每个线程都应该有自己的上下文本地副本,这样对一个线程中的全局变量的任何更改都不会影响其他线程。
每次我需要一个新的上下文时,我都可以显式地设置我的所有模板、变量和全局,但是我想知道是否有一种更有效的方法。假设我已经有了一个表示主状态的全局V8::隔离指针和v8::Persistent。如果我想在自己的线程中创建一个全新的隔离,并创建一个本质上是主服务器的克隆的新上下文,那么我需要做什么呢?我知道,我可以将互斥锁封装在对主服务器的访问上,以确保不同的线程在必要时不会同时访问它。我只是不知道如何在不从头开始重新创建其全部内容的情况下,有效地将在一个隔离中生成的信息复制到另一个隔离器中。
发布于 2015-10-21 21:04:41
您不能在隔离之间共享对象。来自这里
隔离表示V8引擎的孤立实例。V8分离物具有完全独立的状态。不能在其他隔离中使用来自一个隔离的对象。嵌入程序可以创建多个隔离,并在多个线程中并行使用它们。在任何给定时间,最多可以由一个线程输入隔离。锁定/解锁API必须用于同步。
https://stackoverflow.com/questions/25294880
复制相似问题