http 핸들러 인터페이스에서 boolIsReuseable의 중요성
http 핸들러/모듈을 작성할 때 -boolIsReusable이라고 하는 인터페이스 멤버가 있습니다.
이 멤버의 의미는 무엇입니까?false(또는 true)로 설정하면 나머지 웹 앱에 어떤 의미가 있습니까?
처리기의 일반적인 진입점은 프로세스 요청 메서드입니다.그러나 클래스 생성자에 빌드하는 데 비용이 많이 드는 인스턴스 값을 조합하는 코드가 있을 수 있습니다.
Reusable을 true로 지정하면 응용 프로그램은 매번 재구성할 필요 없이 ProcessRequest 메서드를 반복 호출하여 인스턴스를 캐시하고 다른 요청에서 재사용할 수 있습니다.
응용 프로그램은 현재 로드를 처리하는 데 필요한 만큼의 이러한 핸들러를 인스턴스화합니다.
단점은 필요한 인스턴스 수가 현재 존재하는 인스턴스 수보다 많으면 더 많은 메모리가 사용된다는 것입니다.반대로 인스턴스 값은 GC 사이클에서 살아남고 자주 재할당할 필요가 없기 때문에 명백한 메모리 사용을 줄일 수도 있습니다.
또 다른 주의 사항은 프로세스 요청 실행이 끝날 때 개체 상태가 개체를 재사용하기 위한 다른 요청에 대해 원하는 상태인지 확인해야 한다는 것입니다.
앤서니에게 더.WJones의 응답(HTTP 핸들러가 반환하는 경우)true위해서IsReusable그런 다음 나사산이 완전히 안전한지 확인해야 합니다.
문서에는 재사용 가능한 핸들러를 동시에 재사용할 수 없다는 내용이 나와 있지 않지만 현재 Microsoft 구현에서는 핸들러를 연속적으로 재사용하는 것으로 나타납니다.그러나 적어도 이론적으로는 단일 핸들러 인스턴스가 여러 요청에 의해 동시에 재사용될 수 있으므로 다른 동시 스레드에 의해 수정될 수 있는 데이터에 의존해서는 안 됩니다.
해당 인스턴스에 상태를 저장하지 않는 경우(예: "클래스 변수") 필드가 없는 경우 다시 사용해도 안전합니다.
안전한 쪽에 있는 것은 기본적으로 거짓입니다.
언급URL : https://stackoverflow.com/questions/539302/significance-of-bool-isreusable-in-http-handler-interface
'programing' 카테고리의 다른 글
| Git: 로컬 지점만 나열하려면 어떻게 해야 합니까? (0) | 2023.05.28 |
|---|---|
| 스위프트에서 오브젝티브-C 코드를 어떻게 부르나요? (0) | 2023.05.28 |
| node.js에 대한 사용자 인증 라이브러리? (0) | 2023.05.23 |
| 컨트롤러 .NET MVC에서 URL 생성 (0) | 2023.05.23 |
| Dim과 Private의 차이 (0) | 2023.05.23 |