Pri*_*tic 7 c++ multithreading v8
我试图在一个不是主线程的线程中使用来自c ++的v8.就v8而言,没有多线程,所有v8对象都在该线程中创建和销毁.什么都没有并行运行,没有任何共享.当我从主线程运行我的程序时,一切正常.当我在另一个线程中有v8内容时,在创建v8 :: HandleScope时出现分段错误.
我找不到任何关于如何使用v8实际处理线程的有用文档.搜索时会经常弹出"使用隔离和锁定器"的指令,但我找不到任何关于如何完成此操作的示例.在v8 :: Isolate上有这个API文档,但该页面上没有任何内容告诉我在特定情况下是否需要它们(我不共享内存或并行执行).v8 :: Locker()上的文档甚至没有关于该类的信息.项目中包含的样本也不涉及任何此类样本.
所以我的问题是......
小智 2
在调用 HandleScope 时使用上下文的方法中确实需要 V8::Locker。https://github.com/jasondelponte/go-v8/blob/master/src/v8context.cc#L41是我如何在 v8 中使用储物柜的示例。在此示例中,它与多个线程一起使用,但我相信该规则也适用于单线程。
仅当您需要并行运行多个 v8 实例时才需要隔离。
https://groups.google.com/forum/?fromgroups=#!topic/v8-users/FXpeTYuAqKI是我之前发现的一个旧线程,它帮助我解决了 HandleScope 局部变量后库崩溃的问题创建的。
| 归档时间: |
|
| 查看次数: |
3402 次 |
| 最近记录: |