기록은 기억을 이기고 시간보다 오래 남는다.
반응형

Lock 2

Reader-Writer Lock

안녕하세요, 준준입니다. 이번 게시물에서는 **RwLock(Read-Write Lock)**에 대해 알아보겠습니다. RwLock은 읽기와 쓰기의 동시 접근을 관리하기 위한 동기화 메커니즘입니다.여러 스레드가 데이터를 읽을 때는 동시에 접근할 수 있지만,데이터를 쓸 때는 오직 하나의 스레드만이 접근할 수 있도록 하는 기능을 제공합니다.아래의 그림을 보면 이해가 쉬우실까요? 왜 필요한가요? 일반적으로 데이터는 읽기가 빈번하게 일어나고쓰기는 그다지 자주 발생하지 않는 경우가 많습니다. 매번 Lock을 걸어둔다면 쓰기 작업이 거의 없는 상황에서도불필요한 경합(Contension)이 발생할 수 있습니다. RwLock은 이러한 상황에서 효율적으로 동작하여 성능을 향상할 수 있습니다.  RwLock의 주요 특징은 다..

게임 서버 2024.05.29

Lock 이란

만약 하나의 공유 자원에 여러 개의 쓰레드가 접근을 했을 경우그 자원의 값이 뒤죽 박죽이 될 수 있으니 한 쓰레드가 그 자원을 독점 할 수 있도록 도와 준다. Lock 구현 방법으로는 3가지가 있다. 1.Spin lock   - 이 방법은 해당 자원의 임계영역이 풀릴 떄 까지 무작정 기다리는 것을 말한다.   - 무식한 방법이지만 임계영역이 금방 풀릴 것이 기대가 있다면 사용하기 좋다.       하지만 임계영역이 풀리지 않는 다면 매우 비효율적이다.   - 하지만 cpu 점유가 높아 지고 다른 쓰레드를 방해할 수 있다.아래는 Spin lock의 예시이다.#include #include #include std::atomic_flag lock = ATOMIC_FLAG_INIT; // std::atomic_..

반응형