본문 바로가기
게임서버관련

멀티쓰레드

by hallojih 2022. 9. 2.

OS 상에 여러가지 응용 프로그램을 동시에 실행 시킬 수 있는 것도 멀티쓰레드 덕분임.

 

코어가 하나, 쓰레드가 하나 뿐이라면

MMO 서버가 있다면 다른 응용 프로그램보다 우선순위를 둠.

그러면 다른 응용 프로그램은 잘 실행되지 않는 현상이 일어나게 됨

이게 기아현상

 

그러나 코어가 여러 개, 멀티 쓰레드라면,

동시에 여러 응용프로그램을 동시에 실행할 수 있음

그런데 쓰레드를 무작정 많이 늘리게 되면,

부하가 많이 걸림

CPU 코어가 하나만 실행하다가 다른 쓰레드로 옮겨타는 과정은 무거운 작업임.

 

따라서, 코어 수 만큼의 쓰레드를 실행시키면 이상적인 상황이 됨.

 

모든 쓰레드들은 Heap 영역(new), 데이터 영역(static 변수)은 그대로 사용하던 걸 공유해서 사용하게 됨.

그러나 스택 영역은 다 구분 되어서 자신 만의 스택 영역을 가짐.

즉, 공유해서 사용하는 영역을 여러 쓰레드가 사용하는 것은 문제가 발생하게 됨.

=> 서로 얽히고 설키다 보면 한쪽으로만 모이기도 함.

관리가 잘 안되면, 하나의 쓰레드를 두는 것만 못한 상황이 발생

 

 

 

 

 

728x90
반응형

'게임서버관련' 카테고리의 다른 글

하드웨어 최적화  (0) 2023.10.13
게임 서버 종류  (0) 2022.08.31

댓글