目前是 V8 线程安全的
is V8 thread-safe at the moment?
当我意识到我错过了一个重要的地方时,我终于选择了 v8 作为我的应用程序的脚本引擎:并发性。
由于几个关键因素,我决定使用 v8 而不是 lua,但显然我不能使用 v8 编写线程安全代码或多线程任务。
在官方文档中,我没有发现对 v8 并发功能的引用,它们描述了 GC,v8 是用 C++ 编写的,它支持很多平台等等,但没有关于在 wiki 和官方文档中线程化 v8 在C++应用程序中
。问题:我应该如何看待 v8 ?我必须直接从C++将我的应用程序公开为一组单线程/线程安全函数?
V8 不是线程安全的,但这并不意味着你不能在线程环境中使用它。这样做的唯一规定是使用 V8 的 Locker
对象,只要您访问任何与 V8 相关的东西。
这样做非常简单,只需创建一个新的v8::Locker
实例,然后当你完成在 V8 中执行的任何操作时,创建一个v8::Unlocker
根据我对 V8 文档的经验...它非常糟糕,似乎(无论如何在我的使用中)学习如何使用它的最好方法是反复试验。
编辑:这个答案比我更好地解释了V8的多线程使用:
相关文章:
- 从不同线程使用int64的不同字节安全吗
- 如何将元素添加到数组的线程安全函数?
- C++中的线程安全删除
- 在std::thread中,joinable()然后join()线程安全吗
- 在c++队列中使用pop和visit实现线程安全
- 以线程安全的方式调用"QQuickPaintedItem::updateImage(const QImage&image)"(no QThread)
- 全局变量 多读取器 一个写入器多线程安全?
- 共享队列的线程安全
- boost::文件系统::recursive_directory_iterator多线程安全
- 静态 constexpr 类成员变量对多线程读取是否安全?
- 以线程安全的方式转换 C/C++ 中时区名称字符串的时区偏移量
- 线程安全运算符<<
- 如何使缓存线程安全
- C++线程安全:如果只有一个线程可以写入非原子变量,但多个线程从中读取. 会遇到问题吗?
- 提升精神 V2 Qi 语法线程安全吗?
- 线程调用的函数对对象删除是否安全?
- asio 链对象线程安全吗?
- 线程安全队列 c++
- 提供对不同类型的数据(建议、代码审查)的线程安全访问的类
- 有没有更好的方法可以使此代码线程安全?线程局部静态似乎是一个生硬的工具