임계 영역을 해결하기 위한 방법
뮤택스
공유된 자원(공유자원)의 데이터 혹은 임계영역 등에 하나의 프로세스 혹은 스레드가 접근하는 것을 막아준다.
세마포어
뮤택스는 공유된 자원에서의 동기화 대상이 하나만일때
세마포어는 공유된 자원에서의 동기화 대상이 하나 이상일 때
원자조작
뮤텍스나 임계영역 잠금 없이도 여러 스레드가 안전하게 접근할 수 있는 것
하드웨어의 기능이며, 대부분의 컴파일러에서 원자 조작 기능을 쓸 수 있다.
32비트나 64비트의 변수 타입에 여러 스레드가 접근할 때 한 스레드씩만 처리됨을 보장한다.
변수 값 2~3개 이하에서만 보호해주며, 변수를 읽거나 쓰는 방식이 몇 개 안된다.
'게임서버' 카테고리의 다른 글
[게임서버] (3) 컴퓨터 네트워크 (0) | 2024.03.11 |
---|---|
[게임서버] (1) 스레드, 임계영역 (0) | 2024.03.11 |