gpt4 book ai didi

c++ - 当 read_json 在多线程中使用而不与 boost.thread 库链接时,我们是否可以始终使用 BOOST_SPIRIT_THREADSAFE 标志?

转载 作者:搜寻专家 更新时间:2023-10-31 01:36:12 24 4
gpt4 key购买 nike

我们在项目中使用了 boost。我们没有链接任何 boost 库,但我们包括 boost 头文件,如 boost/property_tree/ptree.hpp。

我们正在从多个线程(不是 boost 线程而是 posix 线程)调用 read_json,并且我们在 read_json() 函数处发生崩溃。现在我们在包含头文件之前包含 BOOST_SPIRIT_THREADSAFE,因为 boost json 解析器不是线程安全的,并且一切正常。但是我们的审阅者不接受此更改,他指向以下链接

http://www.boost.org/doc/libs/1_60_0/libs/spirit/classic/doc/grammar.html

正如本页提到的“另一方面,如果语法打算在多线程代码中使用,那么我们应该定义BOOST_SPIRIT_THREADSAFE 在包含任何 spirit 头文件之前。在这个如果还需要链接到 Boost.Threads"

但我们真的需要链接 Boost.Threads 库吗,因为我们没有使用 boost 线程,而且我的理解是 boost 线程内部将在 Linux 平台上使用 posix 线程。如果我错了,谁能告诉我。

最佳答案

审阅者链接到“1.60.0”文档...Classic Spirit。

spirit 经典已经过时了十年或更长时间。

此外,Boost Property Tree 重写了它的解析器:它在 1.60.0 中根本不使用 Spirit。某些版本就是这种情况。

请注意,在 main 入口点之外使用 Property Tree 时可能会出现问题,例如:

关于c++ - 当 read_json 在多线程中使用而不与 boost.thread 库链接时,我们是否可以始终使用 BOOST_SPIRIT_THREADSAFE 标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35998555/

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