통화 컨텍스트 대 스레드 정적
CallContext와 ThreadStatic의 차이점은 무엇입니까?
저는 ASP에서 그것을 이해했습니다.CallContext에 저장된 NET 환경 데이터는 요청이 종료될 때까지 요청 전체에 지속될 수 있으며 요청이 스레드를 전환할 수 있으므로 스레드 스태틱이 작동하거나 작동하지 않을 수 있습니다.또한 HttpContext가 CallContext를 사용하여 내부적으로 저장된다는 것도 배웠습니다.
일반적인 응용 프로그램에서는 둘 다 동일한 스레드 호출 동안 지속되는 것으로 보입니다.언제가 그렇지 않나요?
편집: 댓글에서 저는 통화 컨텍스트가 스레드 정적 저장소에 대한 추상화라는 것을 배웠습니다.ASP.NET 프레임워크는 한 스레드에서 다른 스레드로 데이터를 명시적으로 이동하여 한 요청을 처리합니다.스레드 민첩성을 제공하려는 다른 프레임워크도 컨텍스트 스토리지에 동일한 기능을 제공할 수 있습니다.
요청이 처음부터 끝까지 동일한 스레드를 사용하는 경우가 매우 많지만, ASP와 같은 경우가 항상 있는 것은 아닙니다.NET은 스레드 민첩성을 보여줍니다.이 문제에 대한 2005년의 오래된 심층 블로그 기사가 있지만, 현재.NET 4.5는 오히려 더 낫습니다.
ThreadStatic으로 저장된 항목은 두 개 이상의 요청에 사용할 수 있습니다.IIS는 요청이 완료된 후 후속 요청을 처리하기 위해 스레드를 재사용하며, 처리 중에 요청을 한 스레드에서 다른 스레드로 전환할 수도 있습니다.ASP.Net은 각 요청 후 콜 컨텍스트를 지웁니다.
언급URL : https://stackoverflow.com/questions/273301/callcontext-vs-threadstatic
'bestsource' 카테고리의 다른 글
jQuery & CSS - 디스플레이 제거/추가: 없음 (0) | 2023.09.06 |
---|---|
함수의 정의에 함수 프로토타입 형태의 def를 사용할 수 있습니까? (0) | 2023.09.06 |
Null 병합 연산자 각도 2 (0) | 2023.09.01 |
Try-except 없이 Python에서 키보드 인터럽트 (0) | 2023.09.01 |
윈도우즈에서 OpenSSL을 사용하지 않고 pfx 파일 또는 인증서 저장소에서 개인 키 추출 (0) | 2023.09.01 |