-
Lock 구현 이론게임서버/멀티쓰레드 프로그래밍 2022. 3. 11. 11:52
1. 스핀락(SpinLock)
락이 열릴 때 까지 계속 대기하는 방법.
장점.
락이 풀리자마 빠르게 점유할 수 있다.
단점.
락이 열리지 않으면 계속 대기해야되서 성능이 저하될 수 있다.
2. 컨텍스트 스위칭(Context Switching)
일정한 주기로 락이 열려있는지 확인하고 점유하는 방법.
장점.
락이 열릴 때 까지 기다리는 동안 다른 작업을 할 수 있다.
단점.
쉬는 사이에 다른 쓰레드가 락을 점유해버릴 수 있다.
다른 작업을 하러 갔다가 다시 오는 과정도 성능에 부담이 된다.
3. 오토리셋 이벤트(AutoRestEvent)
이벤트 방식을 이용하여 락이 열리면 대기했던 쓰레드에게 열렸다는 사실을 전달하는 방식.
장점.
락이 열릴 때 까지 기다리는 동안 다른 작업을 할 수 있다.
단점.
없음.
'게임서버 > 멀티쓰레드 프로그래밍' 카테고리의 다른 글
컨텍스트 스위칭(Context Switching) (0) 2022.03.11 스핀락(SpinLock) (0) 2022.03.11 데드락 (0) 2022.03.10 Lock 기초 (0) 2022.03.10 Interlocked (0) 2022.03.10