2

複数のスレッドで BGL の dijkstra_shortest_paths および astar_search 関数を使用し、結果の頂点とエッジのプロパティ マップを読み取るようにしたいと考えています。

スレッドセーフを確保するためにミューテックスを使用する必要があるかどうか疑問に思っています。

だからここに私の質問があります:

1. Boost.Graph スレッドの dijkstra_shortest_paths および astar_search 関数は安全ですか?

2. 複数のスレッドからグラフのプロパティ マップのみを読み取ろうとする場合、スレッド セーフについて心配する必要はありますか?

4

2 に答える 2

1

現在のところ、プロパティ マップと BGL はスレッド セーフではありません。参考までに、この投稿を参照してください。

于 2010-05-08T11:26:39.037 に答える
0

質問 1 の内容はよくわかりませんが、BGL データ構造には STL コンテナと同じスレッド セーフがあります (つまり、個別のコンテナはスレッド セーフでない方法でデータ構造を共有することはできませんが、単一のコンテナに対する操作は同期する必要があります)。 . 質問 2 に関しては、プロパティへの読み取り専用アクセスは、少なくとも BGL 提供のプロパティ マップ タイプを使用する限り、複数のスレッドから安全です。

于 2012-03-29T19:46:22.373 に答える