김영한의 실전 자바 - 고급 1편(동시성 컬렉션)
·
김영한의 실전 자바 - 고급 1편
java.util 패키지의 ArrayList와 같은 컬렉션은 스레드 세이프할까?당연히 그렇지 않다.내부 동작이 모두 원자적 연산으로 구현이 되어 있지 않기 때문 ArrayList와 같은 컬렉션을 스레드 세이프하게 사용하려면 어떻게 해야 하는가?ArrayList와 동일한 동작을 수행하는 컬렉션을 직접 구현한다.그 이후, ArrayList 내부 add, size, get 등의 함수에 synchronized 키워드를 추가 이러한 컬렉션이 여러개라고 할 때 효율적으로 개발하는 방법은?프록시 패턴을 도입하는 방법이 있음.예를 들어, SimpleList라는 인터페이스가 있고, 이 인터페이스를 구현한 basicList, SyncProxyList를 생성한다.BasicList는 ArrayList와 동일한 기능을 하고 있..