Java의 ConcurrentLinkedQueue와 ConcurrentHashMap은 자바에서 동시성(Concurrency)을 다루기 위한 자료구조이다.
이 두 클래스는 멀티스레딩 환경에서 안전하게 사용할 수 있도록 설계되어 있다.
Collections.synchronizedXXX()를 이용하여 synchronized 되거나, Vector와 Hashtable같은 synchronized가 적용된 collection은 스레드에 안전하지만, 스레드 락에 의해 빠른 처리를 기대하긴 어렵다.
java.util.concurrent 패키지에 해당한다.
ConcurrentLinkedQueue<String> concurrentQueue = new ConcurrentLinkedQueue<>();
concurrentQueue.add("Item1");
concurrentQueue.offer("Item2");
String item = concurrentQueue.poll();
ConcurrentHashMap<String, Integer> concurrentMap = new ConcurrentHashMap<>();
concurrentMap.put("Key1", 1);
concurrentMap.put("Key2", 2);
int value = concurrentMap.get("Key1");