2010-05-06 79 views
2

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

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

因此,这里是我的问题:

1,是Boost.Graph线程的dijkstra_shortest_paths和astar_search功能安全吗?

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

回答

1

到目前为止,属性映射和BGL都不是线程安全的。参考见this post

+0

查看Parallel BGL(PBGL),它可以在单个主机上通过多个进程运行(通过MPI)。 http://www.boost.org/doc/libs/1_43_0/libs/graph_parallel/ – spenthil 2010-05-21 17:01:45

0

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