2010-05-06 5 views
2

BGL의 dijkstra_shortest_paths 및 astar_search 함수를 여러 스레드에서 사용하고 결과 정점 및 가장자리의 속성 맵을 읽으 려합니다.BGL 스레드 안전성 향상

스레드 안전성을 보장하기 위해 뮤텍스를 사용해야하는 지 궁금합니다. Boost.Graph 스레드의 dijkstra_shortest_paths 및 astar_search 기능이 안전,

1 :

그래서 여기 내 질문입니까?

2. 그래프의 속성 맵을 여러 스레드에서 읽으려고하면 스레드 안전성에 대해 걱정할 필요가 있습니까?

답변

1

속성 맵과 BGL은 현재 스레드 세이프가 아닙니다. 참고 자료는 this post을 참조하십시오.

+0

병렬 BGL (PBGL)을 살펴보면 단일 호스트에서 MPI를 통해 여러 프로세스로 실행할 수 있습니다. http://www.boost.org/doc/libs/1_43_0/libs/graph_parallel/ – spenthil

0

어떤 질문이 1인지에 대해 확실하지 않지만 BGL 데이터 구조는 STL 컨테이너와 동일한 스레드 안전성을 갖습니다 (즉, 별도의 컨테이너는 스레드 안전하지 않은 방식으로 데이터 구조를 공유 할 수 없지만 단일 컨테이너의 작업은 동기화 할 수 있습니다. 질문 2와 관련하여 속성에 대한 읽기 전용 액세스는 적어도 BGL에서 제공하는 속성 맵 유형의 경우 여러 스레드에서 안전합니다.