[item 82, 83, 84] 동시성
item 82 스레드 안정성 수준을 문서화하라
멀티스레드 환경에서도 API를 안전하게 사용하게 하려면 클래스가 지원하는 스레드 안전성 수준을 정확히 명시해야 한다. synchronized
한정자는 문서화와 관련이 없다. 무조건적 스레드 안전 클래스를 작성할 때는 synchronized
메서드가 아닌 비공개 락 객체를 사용하자. 이렇게 해야 클라이언트나 하위 클래스에서 동기화 메커니즘을 깨뜨리는 걸 예방할 수 있고, 필요하다면 다음에 더…