Lock
Interlocked
원자적으로 연산을 수행하는 메서드를 제공합니다.
정수와 같은 기본 데이터 타입에 대해 사용됩니다.
lock을 사용하지 않고도 원자성을 보장하므로
성능이 중요한 상황에서 유용합니다.
Monitor
특정 객체에 대해 잠금을 설정하거나 해제하는 메서드를 제공합니다.
lock과 유사하게 동작하지만 더 많은 제어를 제공합니다.
스레드 간의 통신을 할 수 있습니다.
Mutex
시스템 전역에서 사용할 수 있는 동기화 객체로
서로 다른 프로세스에서도 동기화가 가능합니다.
그렇기 때문에 높은 오버헤드를 가지고 있습니다.
lock
특정 코드 블록이 동시에 여러 스레드에 의해 실행 되지 않도록 보장합니다.
lock은 내부적으로 Monitor를 사용하여 구현됩니다.
ReaderWriterLock
읽기 잠금을 사용하면 읽기들이 모두 끝날 때 까지 쓰기는 대기해야하고
쓰기 잠금을 사용하면 쓰기와 읽기 모두 대기 해야한다.
성능을 극대화할 수 도 잘못 사용하면 성능 저하를 초래할 수 도 있다.
'CS' 카테고리의 다른 글
ThreadLocalStorage (0) | 2025.03.27 |
---|---|
메모리 베리어 (0) | 2025.03.26 |
캐시 히트와 캐시 미스 (0) | 2025.03.25 |
댓글