2012-12-02 5 views
-6

HashMap을 Synchronized로 변경할 수 있습니까? 그렇다면 변경 방법을 알려주십시오.HashMap을 Synchoronized로 변경하는 방법

+7

['ConcurrentHashMap'] (http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentHashMap.html) 또는 ['Collections.synchronizedMap()'] (http : //docs.oracle.com/javase/7/docs/api/java/util/Collections.html#synchronizedMap (java.util.Map))을 참조하십시오. –

답변

3

는 HashMap을 동기화를 들어, 스레드 안전 당신을위한 동기화 된 맵을 반환하는

Collections.synchronizedMap(<your hashmap reference>) 

를 사용할 수 있습니다.

2

ConcurrentHashMap은 동기화 된 구현 중 하나입니다. javadoc

취득에서는 예상되는 조정 가능한 갱신 동시성의 전체 동시성을 지원하는 해시 테이블 당으로

. 이 클래스는 Hashtable과 동일한 기능 스펙을 따르며 Hashtable의 각 메소드에 해당하는 메소드 버전을 포함합니다. 그러나 모든 작업이 스레드로부터 안전하더라도 검색 작업은 잠금을 수반하지 않으며 모든 액세스를 차단하는 방식으로 전체 테이블을 잠그는 지원은 없습니다. 이 클래스는 스레드 안전에 의존하는 프로그램에서 해시 테이블과 완벽하게 상호 운용이 가능하지만 그 동기화 세부 사항

1

사용 Collections.synchronizedMap(new HashMap());

관련 문제