[Effective-Java] Chapter11 #79. 과도한 동기화는 피하라
·
Reference/Effective-Java
👽 외계인 메서드(alien method) DeadLock과 Safety Failure를 피하려면 동기화 메서드 혹은 블럭 안에서는 제어를 클라이언트에게 넘기지 마라 동기화된 영역 안에서는 재정의할 수 있는 메서드를 호출하지 마라 클라이언트가 넘겨준 함수 객체(Item 24)를 호출해서도 안 된다. 동기화된 영역을 포함한 클래스에서 외계인 메서드는 Exception, 혹은 Dead Lock에 빠트리거나, Safety Failure를 유발할 수 있다. 🚫 As-is @FunctionalInterface public interface SetObserver{ // ObservableSet에 원소가 더해지면 호출된다. void added(ObservableSet set, E element); } BiConsum..