2009-08-28 4 views
1

std :: map에 다중 스레드 모듈과 하나의 캐시 모듈을 개발합니다. 캐시를 업데이트해야하는 경우가 있습니다. 그 때지도를 업데이트하는 동안 모든 독자는 기다려야합니다. 부스트 라이브러리와 어떻게 동기화 할 수 있습니까?
P.S. : 얼마 전에 Boost에서 read_write_mutex가 발생했습니다. 그러나 Boost의 현재 릴리스에서는 누락되었습니다.가장 쉬운 구현 패턴 1 writer - 부스트 라이브러리가있는 다중 판독기

+0

중복 http://stackoverflow.com/questions/244316/reader-writer-locks-in-c –

답변

4

shared_mutexread_write_mutex을 대체 할 것인가?

예.

... 기본적으로 unique_lock<shared_mutex>

당신에게 쓰기 잠금을 줄 것이다, shared_lock<shared_mutex>는 당신에게 읽기 잠금을 줄 것이다, 당신은 (이적) 소유권 이전 하여 업그레이드 할 수있는 것보다 upgrade_mutex<shared_mutex>는 당신에게 읽기 잠금을 줄 것이다 unique_lock<shared_mutex>으로

http://lists.boost.org/Archives/boost/2008/01/132656.php

+0

감사합니다 팀! 알지 못했습니다. –