개별 스레드에서 파이프 라인을 처리하는 응용 프로그램에서 작업하고 있습니다. 테스트 과정에서 프로세스가 "경량"이거나 CLR이 이것이 곧 종료 될 것으로 판단하면 CLR은이 스레드를 빠르게 재사용하고 여러 작업 단위가 같은 스레드를 동시에 공유 할 수 있음을 확인했습니다.CLR 관리 스레드 : 가벼운 프로세스와 무거운 프로세스
반대로 프로세스가 약간의 시간이 걸리거나로드가 많으면 CLR이 다른 스레드를 엽니 다.
저에게 모두 어려운 TLS Thread local storage 프로그래밍.
사실 내 응용 프로그램 파이프 라인은 처리하는 데 약간의 시간이 걸리고 CLR은 항상 서로 관리되는 하나의 스레드를 할당하는 것처럼 보입니다. BTW 어떤 경우에는 두 개의 파이프 라인이 하나의 관리되는 스레드를 공유하는 경우 TLS 변수를 사용하기 때문에 충돌합니다.
결국 여기에 진짜 질문이 온다 ... 나는 프로세스가 약간의 시간 /로드를 필요로 할 때 항상 자신의 쓰래드를 사용할 것인가, 아니면 그 일을 미친 것일까?
.net 3.5에서 관리되는 스레드를 읽는 것은 일종의 블랙 박스로 동작하는 것과 같습니다. 그래서 아마도이 질문은 실제로는 결코 응답 될 수 없습니다.
편집 : 나는 사전 정의 결과 당신이 작업 관리자에서 확인하지 않는 컴퓨터 프로세스를 초래하는 행위, 변경, 또는 함수의 일련의 refereing하고 프로세스
.
'프로세스'를 정의하십시오. 프로세스 사용은 표준 정의와 다소 차이가 있습니다. –
변수가 실제로 스레드 당 의도되지 않은 경우 스레드 로컬 저장소를 사용하지 마십시오. 활동 당 필요하면 해당 변수를 주어진 활동과 연관 시키십시오. – dlev
이 질문을 읽기 어렵습니다. 나는 실행중인 스레드가 적시에 완료되지 않을 때 추가 스레드를 시작하는 스레드 풀 관리자를보고 있다고 가정합니다. –