我开发了一个简单的包装器,它用 Boost 属性树封装了一个 JSONObject。问题是此代码中的分段错误:
void JSONObject::parse(const std::string &text)
{
std::istringstream ss(text);
boost::property_tree::read_json(ss, *pt);
}
一点上下文,我正在使用 JSON 进行消息序列化。如果程序只使用一个线程,它就可以正常工作。但是如果程序使用两个线程在上面代码的最后一行给出了分段错误。
每个线程都有自己的 JSONObject 对象,并且线程之间不共享任何变量。我的想法是,流可能在内部不是线程安全的。
谁能帮我?