5. CCriticalSection 클래스
2024. 4. 17. 16:15ㆍ[C++]/MFC 프로그래밍 기초
CCriticalSection
- 멀티 쓰레드 프로그래밍을 할 때 공유 메모리에 동시 접근을 막아주는 MFC 클래스
- 멀티스레드 환경에서 공유된 자원에 대한 접근을 제어하기 위해 사용된다.
- 공유 데이터 보호: 여러 스레드가 공유된 데이터에 접근할 때 데이터의 일관성을 보장하기 위해 사용된다. CCriticalSection을 사용하여 한 번에 하나의 스레드만이 데이터에 접근하도록 보호할 수 있다.
- 임계 영역 보호: 임계 영역이라고도 불리는 코드 부분에서 여러 스레드가 동시에 실행되지 않도록 보호할 때 사용된다.
Lock과 UnLock의 사용
- Lock (Enter):
- 임계 영역에 진입하기 전에 호출되는 메서드
- 다른 스레드가 해당 임계 영역에 들어가지 못하도록 락을 설정
- Lock 메서드를 호출한 스레드는 해당 CCriticalSection 객체의 임계 영역에 들어갈 수 있다. 다른 스레드가 이미 임계 영역에 들어가 있다면, Lock 메서드를 호출한 스레드는 임계 영역이 Lock을 해제할 때까지 대기한다.
- Unlock (Leave):
- 임계 영역에서 빠져나오고자 할 때 호출되는 메서드입니다.
- Lock을 해제하여 다른 스레드가 해당 임계 영역에 접근할 수 있도록 합니다.
- Unlock 메서드를 호출한 스레드는 임계 영역을 빠져나온 후 다른 스레드가 해당 영역에 들어갈 수 있도록 한다.
CCriticalSection cs; // CCriticalSection 객체 선언
int ShareData; // 공유 메모리 선언
cs.Lock();
ShareData + 2; // 공유 메모리 작업 실행
.
.
cs.Unlock();
반응형
'[C++] > MFC 프로그래밍 기초' 카테고리의 다른 글
[MFC] 2024/04/22 Thread 이용한 간단한 시계 (0) | 2024.06.11 |
---|---|
4. CString 클래스와 CTime 클래스 (0) | 2024.04.17 |
3. CWinThread와 AfxBeginThread (1) | 2024.04.17 |
2. DC(Device Context)와 CDC (0) | 2024.04.17 |
1. MFC의 구성 및 기본 클래스 (0) | 2024.04.17 |