• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

setmaxthreads 그리고 추가 질문

22.10.30 14:38 작성 조회수 231

0

ThreadPool.SetMinThreads(1, 1);

ThreadPool.SetMaxThreads(3, 3);

 

에서 최대 쓰레드가 3개라고 설정했는데 parallel로 실행하면

아래와 같이 1,4,6,5 이렇게 4개의 쓰레드 id를 가지는지 궁금합니다.

그리고 TLS가 static 변수를 각 쓰레드의 로컬 변수로 만들어서 사용한다는 건데 이 또한 lock을 걸어서 사용하는 건가요?

만약 lock을 사용하지 않는다면 쓰레드 에서 값을 변경한 것이 static 변수에는 영향을 끼치지 않고 스레드 로컬에서만 사용한다는 것인가요?

답변 1

답변을 작성해보세요.

2

https://learn.microsoft.com/ko-kr/dotnet/api/system.threading.threadpool.setmaxthreads?view=net-6.0
정확히 말하면 '동시에 활성화 될 수 있는' 쓰레드 개수입니다.
만드는건 제한이 없죠.

TLS는 공유해서 사용하는 개념이 아니므로,
락을 걸지 않고 사용합니다. (쓰레다마다 고유하게 있는 전역 변수에 해당)