C#
C# 게임서버, Auto Reset Event, Manual Reset Event
comwitch
2023. 6. 19. 10:15
Lock을 하는 방법 중 하나는 SpinLock이 있지만 Auto Reset Event도 존재한다.
Auto Reset Event는 커널에다가 Lock이 풀리면 사용할 수 있게 물어봐 놓고 기다렸다가 차례가 되면 사용하는 방식이라고 생각하면 편하다
Auto Reset Event와 Manual Reset Event 사이에는 사용을 할때 자동으로 AutoResetEvent는 false처리가 되고, Manual은 False 처리가 되질 않는다.
그래서 Manual Reset Event를 사용하면 가끔 데이터가 무결하지 않을 때도 있다. 그래서 Auto Reset Event를 사용하는 편.
Auto Reset Event는 짧고 자주써야하는 쓰레드 일수록 커널과의 통신을 해야하기 때문에 시간적 비용이 높아져버린다.
Mutex라는 커널 동기화 객체가 또 있는데, 이거는 실시간 동기화가 중요시 되는 게임서버에서는 크게 사용하지 않는다고 한다.