JSON for Modern C ++线程安全吗?

时间:2017-06-07 18:32:51

标签: c++ json multithreading github

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

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

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

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

根据 About thread safety #2366 中的作者:

<块引用>

不,容器就像地图或向量:您必须自己确保线程安全。