이번 포스트에서는 멀티 스레드 환경에서 스레드 안전한(thread safe) 컬렉션 사용에 대해 살펴보자. 스레드와 Collection Thread Safe or Not!구 버전(JDK 1.2 이전)의 collection들인 Vector, Hashtable들은 이미 모든 메서드에 synchronized가 선언되어 있다. 따라서 매서드 실행 시마다 lock을 확인하는 절차가 필요하고 한 번에 하나의 스레드만 동작할 것이고 덕분에 멀티 스레드 환경에 안전하다. 하지만 성능의 문제가 발생할 수 밖에 없다. 만약 싱글 스레드 환경에서 이들을 썼다면 장점은 없고 단점만 남을 것이다.JDK 1.2 이후에는 이들의 개선 버전으로 ArrayList, HashMap을 사용한다. 이들은 synchronized가 없다...
[Thread] 04. 멀티 스레드와 Collection
이번 포스트에서는 멀티 스레드 환경에서 스레드 안전한(thread safe) 컬렉션 사용에 대해 살펴보자. 스레드와 Collection Thread Safe or Not!구 버전(JDK 1.2 이전)의 collection들인 Vector, Hashtable들은 이미 모든 메서드에 synchronized가 선언되어 있다. 따라서 매서드 실행 시마다 lock을 확인하는 절차가 필요하고 한 번에 하나의 스레드만 동작할 것이고 덕분에 멀티 스레드 환경에 안전하다. 하지만 성능의 문제가 발생할 수 밖에 없다. 만약 싱글 스레드 환경에서 이들을 썼다면 장점은 없고 단점만 남을 것이다.JDK 1.2 이후에는 이들의 개선 버전으로 ArrayList, HashMap을 사용한다. 이들은 synchronized가 없다...
2024.07.06