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 |