Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# ReaderWriterLock 사용법 완벽 정리

C# ReaderWriterLock이란?

ReaderWriterLock은 여러 스레드가 하나의 공유 리소스에 접근할 때 이를 동기화하기 위해 사용되는 클래스입니다.

일반적인 Monitor는 한 번에 하나의 스레드만 잠금을 획득할 수 있는 반면, ReaderWriterLock은 읽기 작업과 쓰기 작업을 구분하여 처리함으로써 더 높은 처리량(throughput)을 제공합니다. 따라서 리소스가 자주 변경되지 않고 읽기 요청이 많은 환경에서 특히 효과적입니다.

ReaderWriterLock 선언 방법

C#에서 ReaderWriterLock을 선언하는 기본 문법은 다음과 같습니다.

static ReaderWriterLock r = new ReaderWriterLock();

ReaderWriterLock의 주요 속성

ReaderWriterLock에서 제공하는 대표적인 속성은 다음과 같습니다.

번호속성 및 설명
1

IsReaderLockHeld

현재 스레드가 읽기(reader) 잠금을 보유하고 있는지 여부를 나타내는 값을 반환합니다.

2

IsWriterLockHeld

현재 스레드가 쓰기(writer) 잠금을 보유하고 있는지 여부를 나타내는 값을 반환합니다.

3

WriterSeqNum

현재 시퀀스 번호(sequence number)를 반환합니다.

ReaderWriterLock의 주요 메서드

ReaderWriterLock에서 자주 사용되는 메서드는 다음과 같습니다.

번호메서드 및 설명
1

AcquireReaderLock(TimeSpan)

TimeSpan 값을 타임아웃으로 지정하여 읽기 잠금을 획득합니다.

2

AcquireWriterLock(TimeSpan)

TimeSpan 값을 타임아웃으로 지정하여 쓰기 잠금을 획득합니다.

3

Equals(Object)

지정된 개체가 현재 개체와 같은지 여부를 확인합니다. (Object 클래스에서 상속됨)

4

GetHashCode()

기본 해시 코드를 반환합니다.

5

GetType()

현재 인스턴스의 형식(Type)을 반환합니다.

6

ReleaseReaderLock()

잠금 카운트(lock count)를 감소시켜 읽기 잠금을 해제합니다.