인프런 커뮤니티 질문&답변

hkjin97님의 프로필 이미지

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

쓰레드 생성

17:30 초 부근에 QueueUserWorkItem 테스트하는 부분에서

20.10.20 15:39 작성

·

251

0

            ThreadPool.SetMinThreads(1, 1);

            ThreadPool.SetMaxThreads(5, 5);

            for (int i = 0; i < 4; i++)

                ThreadPool.QueueUserWorkItem((obj) => { while (true) { } });

            ThreadPool.QueueUserWorkItem(MainThread);

for문 체크하실 때 5에서 4로 바꾸셨는데 저도 똑같이 했는데 출력이 안됩니다. 3이하로 내리니까 출력이 됩니다. 

디버그로 쓰레드가 몇개 있는지 확인해봤는데 주 쓰레드 포함 5개밖에 없다고 뜹니다. 왜이럴까요?

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

2020. 10. 20. 20:09

CPU 환경에 따라 다르게 동작할 수 있기 때문에
정확한 원인을 알기 힘들지만,

우선 SetMinThreads, SetMaxThreads 설정 성공값을 bool로 리턴하니
반환값이 무엇인지 로그로 출력해보고,
해당 설정이 잘 동작하는지부터 확인하는게 우선일 것 같네요.

여담이지만 SetMinThreads, SetMaxThreads는 이론 설명을 위해 사용하긴 했지만,
사실 굳이 건드리지 않아도 대부분 쓰레드 풀이 알아서 개수를 잘 관리하긴 합니다.

hkjin97님의 프로필 이미지

작성한 질문수

질문하기