반응형
클래스를 사용할 때 클래스의 객체와 정적 메서드가 병렬적으로 이용되었을 때, 어떠한 부작용이 있을 수 있는지 안전한지에 대한 정보가 없으면 추후에 큰 문제를 야기할 수있다.
JavaDoc에서 synchronized 키워드를 통해 병렬설 지원 여부를 확인할 수있다고 알고 있으나 실상 그렇지 않다.
왜냐하면 Javadoc이 만드는 문서에는 Javadoc이 들어가지 않는다. 왜냐하면 synchronized 키워드는 메서드의 구현 상세에 해당하는 정보이며, 공개 API의 일부가 아니기 때문이다.
그렇기 때문에 synchronized 키워드를 통해 판단해서는 안되고 병렬적으로 사용해도 되는지의 여부는 문서에 남겨져 있어야 한다.
출처 : 조슈아 블로크, 『 Effective Java 2/E』, 이병준 옮김, 인사이트(2014.9.1),
반응형
'JAVA > Effective Java' 카테고리의 다른 글
규칙 72 - 스레드 스케줄러에 의존하지마라. (0) | 2018.06.15 |
---|---|
규칙 71 - 초기화 지연은 신중하게 하라 (0) | 2018.06.14 |
규칙 69 - wait나 notify 대신 병행성 유틸리티를 이용하라. (1) | 2018.06.13 |
규칙 68 - 스레드보다는 실행자와 태스크를 이용하라. (0) | 2018.06.13 |
규칙 67 - 과도한 동기화는 피하라 (0) | 2018.06.10 |