用于现代 C++ 线程安全的 JSON?

Bri*_*ian 1 c++ multithreading json github nlohmann-json

我正在使用一个名为“现代 C++ 的 JSON”(https://github.com/nlohmann/json)的库,它非常漂亮,让我可以通过与 Javascript 服务器端应用程序共享的 C++ 程序使用 JSON 配置文件。该库本质上创建了另一种数据类型,该数据类型的访问和操作方式与 Javascript JSON 对象非常接近。

我的问题是,我是否需要关注 JSON 变量访问和操作的线程安全性,或者我可以相信该库是线程安全的。我查看了文档,我没有看到它说它是线程安全的,但我也没有看到任何地方说它不是线程安全的。

还有其他人在多线程环境中使用这个库吗?你需要自己保护它还是图书馆保护自己。也许我真的很幸运,存储库作者 nlohmann 会直接回答!

任何帮助是极大的赞赏!

Wag*_*ota 8

nlohmann 库不是线程安全的。看一下头文件。这是一个。没有互斥锁、锁或原子或任何与线程相关的东西。

https://github.com/nlohmann/json/blob/develop/src/json.hpp

您负责防止访问此数据的多个线程并发。