• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

17분 질문

22.02.16 22:02 작성 조회수 150

0

  ThreadPool.SetMinThreads(1, 1);

            ThreadPool.SetMaxThreads(3, 3);

            Parallel.Invoke(WhoAmI, WhoAmI, WhoAmI, WhoAmI, WhoAmI, WhoAmI, WhoAmI);

 

이런식으로 Min, Max를 설정해주었기 때문에

 Parallel.Invoke 가 threadPool에서 아무 쓰레드나 뽑오와서

일을 시키는데 그 과정에서

1번쓰레드가 일을 끝내고 다시 threadPool에 있는 상태에서

 

다시 parallel가 1번 쓰레드에게 다시 일감을 던져주게 되어 

같은 ManagedThreadId 가 cmd창에 찍혀서 나오게 되는 것인가요??

답변 1

답변을 작성해보세요.

0

min, max는 쓰레드 개수를 설정하는 것일뿐
그것 '때문에' Invoke가 병렬로 실행되는 것은 아닙니다.
몇번 쓰레드가 무슨 일을 하는지는 
내부적으로 관리되기에 알 수 없습니다.