提升 BGL 线程安全性

发布于 2024-09-01 07:56:23 字数 246 浏览 8 评论 0原文

我希望多个线程使用 BGL 的 dijkstra_shortest_paths 和 astar_search 函数,然后读取结果顶点和边的属性映射。

我想知道是否应该使用互斥体来确保线程安全。

所以我的问题是:

1. Boost.Graph 的 dijkstra_shortest_paths 和 astar_search 函数线程安全吗?

2.、如果我只尝试从多个线程读取图的属性映射,我需要担心线程安全吗?

I'd like multiple threads to use the dijkstra_shortest_paths and astar_search functions of the BGL, and then read the property maps of the result vertices and edges.

I'm wondering wether I should use mutexes to ensure thread-safety.

So here are my questions:

1., Are the dijkstra_shortest_paths and astar_search functions of the Boost.Graph thread safe?

2., If I only try to read the property maps of the graph from multiple threads, do I need to worry about thread safety?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦断已成空 2024-09-08 07:56:23

到目前为止,属性映射和 BGL 还不是线程安全的。有关参考,请参阅这篇文章

Property maps and the BGL are not thread-safe as of now. For reference see this post.

记忆里有你的影子 2024-09-08 07:56:23

我不完全确定问题1是关于什么的,但是BGL数据结构与STL容器具有相同的线程安全性(即,单独的容器不能以线程不安全的方式共享数据结构,但单个容器上的操作需要同步) 。至于问题 2,对属性的只读访问在多个线程中是安全的,至少对于 BGL 提供的属性映射类型而言是如此。

I'm not completely sure what question 1 is about, but BGL data structures have the same thread safety as the STL containers (i.e., separate containers cannot share data structures in thread-unsafe ways but operations on a single container need to be synchronized). As to question 2, read-only access to properties is safe from multiple threads as long, at least with the BGL-provided property map types.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文