강의/게임 서버

[서버/2. 멀티쓰레드 프로그래밍]2. 쓰레드 생성

개발의 피 2024. 10. 26. 23:58

1) Thread를 만들어서 관리 : 굉장히 큰 부담이 되는 작업 

-> new Thread : 정직원 한 명 추가

 

t.Name : 스레드 이름 설정

t.IsBackground  = true : 백그라운드에서 실행 ( = main이 종료되면, 스레드 실행 상관없이 종료될 것)
cf. 기본 : t.IsBackground = false

t.Start : 스레드 실행

t.Join : 백그라운드 스레드가 끝날 때까지 기다렸다가, 끝나고 나면 이후 실행

 

 

스레드 단점 : 필요할 때마다, 스레드를 만들어서 다시 던져주는 것 = 너무 부담이 큼

=> 극복 : 스레드 풀 

2) ThreadPool : 인력 상담소

직원들 이미 다 마련되어 있고, 대기 중인 상태

- 설정 o : 스레드풀 개수 (=인력풀 직원 총 수), 일감 던지기

- 설정 x : 세세하게 그 인력을 어떻게 관리할지 (<- C# 자체, .NET 프레임워크에서 해줌) 

ThreadPool.QueueUserWorkItem(스레드) : 일감 던지기

 

 

스레드풀 단점 : 만약 일감을 다 물고 있으면 -> 그 다음 일감은 요청이 오더라도 실행 x

=> 극복 : 테스크 

3. Task : 단기 알바

스레드 풀 단점 극복 

TaskCreationOptions.LongRunning : 오래 걸리는 작업이라고 알려주는 옵션

'강의 > 게임 서버' 카테고리의 다른 글

[서버/1. 개론]2. 환경 설정  (0) 2024.10.21
[서버/1. 개론]1. 서버 OT  (0) 2024.10.21