스레드세이프 ( 2 ) std::shared_mutex . 멀티 스레드 읽기 쓰기 락 std::shared_mutex . 읽기 쓰기 락 - C++ 17 부터 제공됨 #include class MyClass {private: std::shared_mutex rw_mutex; // 읽기-쓰기 락 객체 MyStruct data; // 보호할 구조체 변수public: void UpdateData(const MyStruct& newData) { std::unique_lock lock(rw_mutex); // 쓰기 잠금 data = newData; } MyStruct ReadData() { std::shared_lock lock(rw_mutex); // 읽기 잠금 return data; }}.. 2024. 9. 12. Critical Section (크리티컬 섹션) 개요Critical Section (크리티컬 섹션) 을 설정한 구간은 한 번에 하나의 "스레드"에서만 사용가능하다.- 프로세스 내에 여러 스레드가 있는 환경에서, 우리가 설정해둔 "크리티컬 영역" 에 어떤 스레드가 먼저 진입하여 크리티컬 영역을 벗어나지 않은 상태에서는 동일 프로세스의 다른 스레드에서 해당 크리티컬 영역에 진입하는 것을 금지한다. - 후발 스레드의 "크리티컬 섹션" 진입금지 방식에 "리턴" 혹은 "대기"를 설정할 수 있다. "대기"란 선 진입한 스레드가 해당영역을 벗어날때까지 후발 스레드는 "대기" 상태로 있다가 선진입한 스레드가 해당영역 벗어나면 대기중인 후발 스레드가 크리티컬 영역을 실행하는것. "리턴"이란 후발 스레드는 "대기"상태에 있지 않고 "리턴"되어 크리티컬 영역 실행 하.. 2020. 5. 13. 이전 1 다음