-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
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 변수에는 영향을 끼치지 않고 스레드 로컬에서만 사용한다는 것인가요?
답변을 작성해보세요.
2
Rookiss
지식공유자2022.10.30
https://learn.microsoft.com/ko-kr/dotnet/api/system.threading.threadpool.setmaxthreads?view=net-6.0
정확히 말하면 '동시에 활성화 될 수 있는' 쓰레드 개수입니다.
만드는건 제한이 없죠.
TLS는 공유해서 사용하는 개념이 아니므로,
락을 걸지 않고 사용합니다. (쓰레다마다 고유하게 있는 전역 변수에 해당)
답변 1