코다람쥐 2022. 3. 11. 11:52

1. 스핀락(SpinLock)

락이 열릴 때 까지 계속 대기하는 방법.

 

장점.

락이 풀리자마 빠르게 점유할 수 있다.

 

단점.

락이 열리지 않으면 계속 대기해야되서 성능이 저하될 수 있다.

 

2. 컨텍스트 스위칭(Context Switching)

일정한 주기로 락이 열려있는지 확인하고 점유하는 방법.

 

장점.

락이 열릴 때 까지 기다리는 동안 다른 작업을 할 수 있다.

 

단점.

쉬는 사이에 다른 쓰레드가 락을 점유해버릴 수 있다.

다른 작업을 하러 갔다가 다시 오는 과정도 성능에 부담이 된다.

 

3. 오토리셋 이벤트(AutoRestEvent)

이벤트 방식을 이용하여 락이 열리면 대기했던 쓰레드에게 열렸다는 사실을 전달하는 방식.

 

장점.

락이 열릴 때 까지 기다리는 동안 다른 작업을 할 수 있다.

 

단점.

없음.