使用 Google 的 v8 c++ 库,我想创建一个上下文,其中我定义了多个模板、变量和全局变量,并准备好供代码中的多个位置使用,这些位置可能在不同的线程上运行,每个线程都有自己的隔离,它们也应该在其中每个线程都有自己的本地上下文副本,因此对一个线程中全局变量的任何更改都不会影响其他线程。
每次我想要一个新的上下文时,我都可以通过显式设置所有模板、变量和全局变量来做到这一点,但我想知道是否有更有效的方法。假设我已经有一个代表主状态的全局 v8::Isolate 指针和 v8::Persistent。那么我需要做什么,如果我想在自己的线程中创建一个全新的隔离,并创建一个本质上是 master 克隆的新上下文?我知道我可以在对主服务器的访问周围包装一个互斥锁,以确保不同的线程在必要时不会同时访问它。我只是不知道如何有效地将在一个隔离区中生成的信息复制到另一个隔离区,而无需从头开始重新创建其全部内容。