【发布时间】:2015-09-23 12:08:16
【问题描述】:
我在应用程序中有两个模块。 Module1 拥有并构建 boost::geometry::index::rtree。 Module2 对 Module1 进行查询,这些查询被传递给 RTree。现在我想加快速度并拥有几个 Module2 实例,它们对 一个 Module1 实例进行查询,并分别工作。我 100% 确定,虽然 任何 Module2 工作的 RTree 都不会改变。
我发现了这个问题:Can I use Boost.Geometry.index.rtree with threads?,但它描述了更复杂的情况,当 rtree 被修改并从不同的线程查询时。这个答案是模棱两可的:答案中说明了“No boost Rtree is not thread-safe in any way”。但是在 cmets 中声明:“进行查询是安全的,甚至可以为创建创建解决方法”。什么是正确答案?除了直接提出问题以提升作者的能力外,是否有其他资源可以找出答案?
Tl;博士:
如果我 100% 确定没有线程修改 RTree,那么从不同线程对 boost::geometry::index::rtree 进行查询是否安全?
【问题讨论】:
-
您问题的答案似乎包含在您链接的问题的答案中(就在底部)。
-
@Rostislav 回答链接的问题:“No boost Rtree 无论如何都不是线程安全的”。但在 cmets 中:“进行查询是安全的,甚至可以为创建创建解决方法”。谁是对的?
标签: c++ multithreading c++11 boost boost-geometry