2011-01-11 2 views
14

제목에 대한 정보가 있습니까? 특히 boost :: shared_mutex와 독자가 쓰는 뮤텍스와 관련된 문제는 무엇인가?C++ 0x 표준위원회가 boost :: shared_mutex를 거부 한 이유는 무엇입니까?

리더 - 라이터 뮤텍스가 오용 될 수 있습니다. 작가 잠금이 자주 발생하면 간단한 뮤텍스와 비교해도 성능이 떨어집니다. 하지만 많은 독자들이 종종 작가가 자주 수정할 수있는 공유 리소스를 필요로하는 경우가 많습니다.

+8

C++ 14에서 허용됩니다. http://en.cppreference.com/w/cpp/thread/shared_mutex 또는 http://en.wikipedia.org/wiki/C++14 참조하십시오. – Tom

+1

위의 설명에있는 링크는 http : // ko이어야합니다. cppreference.com/w/cpp/thread/shared_timed_mutex ('std :: shared_mutex'는 C++ 14에 속하지 않지만 C++ 17에있는 더 간단한 유형입니다). –

답변

12

Anthony Williams는 C++ 표준위원회의 영향력있는 구성원입니다. 그는 C++ 11 표준에 스레드 라이브러리가 포함되도록 많은 제안을 공동 저술했습니다. 그의 이의 제기는 this commentary에서 읽을 수 있습니다. 그럼에도 불구하고, C++ 17로 만들었습니다.

+1

N.B. 'boost :: shared_mutex'와 같은 것을 C++ 14로 만들었지 만'shared_timed_mutex'라는 이름으로 바뀌 었습니다. C++ 17은'shared_mutex'도 추가합니다. 이것은'timed_mutex'와'recursive_mutex' /'recursive_timed_mutex'와 비슷합니다. –

10

shared_mutex의 문제는 Hans가 언급 한 mail에서 언급했듯이 높은 오버 헤드입니다. 따라서 shared_mutex은 리소스가 오랫동안 보관되어 있고 드물게 리소스를 겨룰 수있는 스레드가 거의없는 경우에만 이점이 있습니다.

다른 문제가있는 detailed article을 찾았습니다.

관련 문제