gpt4 book ai didi

c++ - V8 目前是线程安全的吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:20:21 26 4
gpt4 key购买 nike

当我意识到我错过了一个重要的点:并发时,我最终选择了 v8 作为我的应用程序的脚本引擎。

由于几个关键因素,我决定使用 v8 而不是 lua,但显然我不能使用 v8 编写线程安全代码或一般的多线程任务。

在官方文档中我没有找到 v8 的并发特性的引用,他们描述了 GC,v8 是用 C++ 编写的,它支持很多平台等等,但是在 wiki 和在 C++ 应用程序中嵌入 v8 的官方文档。

问题:我应该如何考虑 v8?我必须直接从 C++ 将我的应用程序公开为一组单线程/线程安全函数吗?

最佳答案

V8 不是线程安全的,但这并不意味着您不能在线程环境中使用它。这样做的唯一规定是使用 V8 的 Locker 对象,无论何时访问任何与 V8 相关的东西。

这样做非常简单,只需创建一个新的 v8::Locker 实例,然后当您完成在 V8 中执行的任何操作时,创建一个 v8 实例::解锁器

根据我使用 V8 文档的经验...它非常糟糕,而且(无论如何在我的使用中)似乎学习如何使用它的最佳方法是反复试验。

编辑:This这里的答案比我更好地解释了 V8 的多线程使用:

关于c++ - V8 目前是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20695124/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com