
야~ 거기 CPU 좀 못 놀게 해라 Multi-Threading
·
Game Server Class 101
개발을 공부하면서 가장 혼란스러웠던 개념 중 하나가 프로세스와 스레드 그리고 멀티 스레딩이었다.Process 무언가 실행되는 것... Thread 이것도 무언가 실행되는 것..? 멀티 스레딩? 뭔가 여러 개가 동시에 실행되는 느낌?... 알 것 같으면서도 막상 설명하려 하면 말문이 막혔다. 게임 서버는 동시에 수많은 유저의 요청을 처리해야 하다 보니 싱글 스레드로 감당하기 어려운 경우가 많다.그래서 멀티스레딩이 무엇인지 또 멀티스레딩에서 발생하는 문제들과 이를 해결하기 위한 뮤텍스(Mutex), 크리티컬 섹션(Critical Section), 세마포어(Semaphore), 락(Lock) 같은 개념들을 접하게 되었다. 이번 글에서는 내가 처음 느꼈던 혼란과 궁금증을 바탕으로 이 개념들이 어떤 의미를 가지..