2010-05-06 78 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提供的屬性映射類型中是安全的。