파이널 라이저가 실행되는 스레드가 지정되어 있지 않은, 그래서이 방법은 종료 것이라는 보장은 없습니다.
나는이 문장을 정말로 이해하지 못한다. 어떤 상황에서이 방법이 종료되지 않습니까? 그리고 이것은 파이널 라이저가 실행되는 스레드와 어떤 관련이 있습니까? 스레드가 "지정되지 않음"이라고 명시하는 이유는 무엇입니까? 종료 자 스레드에 관한
는, 나는 다음과 같은 올바른 가정 (?) 만 하나 종료 자 스레드있다
- .
- finalizer는 항상 별도의 스레드에서 실행됩니다 (즉, 메인 스레드 나 다른 사용자가 만든 스레드에서 실행되지 않음).
참고 : 나는 파이 나라 블록 중 하나지만,이 문제가 파이 나라를 위해 사용되는 어떤 스레드에 상관없이 존재하지 않는 경우에이 방법을 차단합니다 상상할 수있다.
그래, 그럼 왜 문서가 명시 적으로 "finalizers가 실행 스레드가 지정되지 않은"상태?"이 메소드가 종료됩니다 (finalizer를 차단하기 때문에) 보장 할 수는 없습니다"라고 쓰는 것으로 충분하지 않습니까? –
CLR 팀은 향후 구현 세부 사항을 변경할 권리가 있으며, 현재 작동 방식에 의의를두고 싶지는 않습니다. 사실은 자체 스레드 (GC.Collect가 아닌)에서 실행된다는 것입니다. –
리히터의 CLR에서 C#을 통해, 나는 그가 미래에 CLR이 여러 개의 파이널 라이저 스레드를 사용할 수 있다고 언급했다. 나는이 책을 편리하게 가지고 있지는 않지만, 당신의 질문에 더 잘 답할 수있는 심층적 인 토론이 발견 될 것이라고 생각합니다. –