目前是V8线程安全吗?

时间:2013-12-20 02:04:11

标签: c++ multithreading v8

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

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

在官方文档中,我没有发现v8的并发功能,它们描述了GC,v8是用C ++编写的,它支持很多平台,等等,但没有关于wiki和wiki的线程。在v ++应用程序中嵌入v8的官方文档。

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

1 个答案:

答案 0 :(得分:6)

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

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

根据我对V8文档的体验......它很糟糕,似乎(在我使用中)学习如何使用它的最佳方式是试错。

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