아이템 81 [아이템 8] finalizer와 cleaner 사용을 피하라 자바는 finalizer와 cleaner라는 두 개의 소멸자가 있다. 결론은 두 소멸자를 사용할 시 오작동, 낮은 성능, 이식성 문제의 원인이 될 수 있어 사용을 지양해야 한다. finalizer와 cleaner는 즉시 수행된다는 보장이 없다. finalizer를 달아두면 그 인스턴스의 자원 회수가 제멋대로 지연될 수 있다. finalizer 스레드는 다른 애플리케이션 스레드보다 우선순위가 낮아서 실행될 기회를 얻지 못할 수 있다. cleaner는 자신을 수행할 스레드를 제어할 수 있지만 즉각 수행되라는 보장이 없다. 수행 시점 뿐만 아니라 수행 여부조차 보장받지 못한다. System.gc, System.runFinalization 메서드가 실행 가능성을 높여줄 수 있으나, 보장은 못한다. finaliz.. 2022. 1. 1. 이전 1 다음 728x90