자바 썸네일형 리스트형 [Java] Hashtable VS HashMap VS ConcurrentHashMap Hashtable VS HashMap VS ConcurrentHashMap Hashtable, HashMap, ConcurrentHashMap 모두 Map 인터페이스를 implements한 AbstractMap을 상속받아 구현하고 있는 공통점은 있다. 그럼 어느 부분이 다를지 알아보자. Hashtable VS HashMap Hashtable은 모든 데이터 변경 메소드가 synchronized로 선언되어 있어서, 메소드 호출 전 스레드 간의 동기화 lock을 통해 멀티 스레드 환경에서 data의 무결성을 보장해준다. (thread-safe) 하지만 HashMap은 그런 장치가 1도 없기 때문에, 동기화 문제가 발생할 수 있다(non-thread-safe). 물론, HashMap도 synchronized로 .. [Java] synchronized 메소드와 일반 메소드로 같은 자원에 접근하면 thread-safe할까? 면접 때 받았던 질문을 바탕으로 작성한 글입니다. synchronized가 완전히? 걱정없는? Thread-safe한 환경을 구성해줄 것이라고 믿고 있었지만 그렇지도 않았다. synchronized 메소드들만 사용 → thread-safe package test; public class synTest { private int a = 0; public static void main(String[] args) { synTest syn = new synTest(); new Thread( () -> { syn.setter(); }).start(); new Thread( () -> { for(int i = 0 ; i < 100 ; i++) System.out.println(syn.getter()); }).star.. 이전 1 다음