사용자 삽입 이미지출처 : http://java.sun.com/docs/books/tutorial/collections/interfaces/index.html

Java 6 API에서 Collection을 살펴 보면 다음과 같은 문구가 있습니다.

It is up to each collection to determine its own synchronization
policy.

Collection의 상위 레벨에서 thread와 관련된 정책은 없고 동기화에 대한 책임은 각각의 구현체들마다 다를 수 있다는 것을 알려줍니다.

Collection 인터페이스를 구현한 클래스들은 다음과 같습니다.

AbstractCollection, AbstractList, AbstractQueue, AbstractSequentialList, AbstractSet, ArrayBlockingQueue, ArrayDeque, ArrayList, AttributeList, BeanContextServicesSupport, BeanContextSupport, ConcurrentLinkedQueue, ConcurrentSkipListSet, CopyOnWriteArrayList, CopyOnWriteArraySet, DelayQueue, EnumSet, HashSet, JobStateReasons, LinkedBlockingDeque, LinkedBlockingQueue, LinkedHashSet, LinkedList, PriorityBlockingQueue, PriorityQueue, RoleList, RoleUnresolvedList, Stack, SynchronousQueue, TreeSet, Vector

그럼 과연 이중에서 어떤 클래스들은 Thread-safe 할까요? 그건 다음 포스팅에서 살펴보겠습니다.