쓰레드(Thread)

개발조하·2024년 1월 19일

GameServer

목록 보기
3/9
post-thumbnail

1. Thread

  • 쓰레드 2개로 만들기

  • While문으로 MainThread() 무한 실행

  • IsBackground = true;로 쓰레드를 백그라운드에서 실행하도록 만듦

지금처럼 Thread를 new로 할당하여 사용하는 것은 식당에서 정직원을 채용하는 것만큼의 부담이 된다. 이에 알바 개념의 인력풀인 ThreadPool을 사용한다.

2. ThreadPool

하지만, ThreadPool의 단점은 짧은 업무가 아닌 긴 업무를 부과할 경우 먹통이 된다는 것이다..

만약 최대 5개 중 4개에만 과업을 주면 남은 1개가 MainThread()를 실행하기는 한다.

이러한 단점을 극복하기 위해 Task를 사용한다.

3. Task

Task는 업무에 대한 옵션을 설정해줄 수 있어서 LongRunning으로 표시하여 오래걸리는 업무라는 것을 미리 알려준다. 이에 ThreadPool에서 미리 정해놓은 쓰레드가 아닌 Task가 해당 과업을 진행하게 되어 먹통이 되지 않는다! 만약 LongRunning Task임을 지정해주지 않으면 ThreadPool때와 같은 이유로 먹통이 되는 것을 확인할 수 있다.

📄참고자료
[인프런] c#과 유니티로 만드는 MMORPG 게임 개발 시리즈_4. 게임 서버
Thread/ThreadPool/Task의 차이점

profile
Unity 개발자 취준생의 개발로그, Slow and steady wins the race !

0개의 댓글