인프런 커뮤니티 질문&답변
17분 질문
작성
·
268
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
Rookiss
지식공유자
min, max는 쓰레드 개수를 설정하는 것일뿐
그것 '때문에' Invoke가 병렬로 실행되는 것은 아닙니다.
몇번 쓰레드가 무슨 일을 하는지는
내부적으로 관리되기에 알 수 없습니다.





