병렬처리 관련
AtomicInteger
volatile 은 Thread1에서 쓰고, Thread2에서 읽는 경우만 동시성을 보장. 두개의 쓰레드에서 쓰기작업을 한다면 문제가 될 수 있습니다.
synchronized를 쓰면 안전하게 동시성을 보장하지만 비용이 가장 큼.
Atomic 클래스는 CAS(compare-and-swap)를 이용하여 동시성을 보장. 여러 쓰레드에서 데이터를 write해도 문제 없음
Integer는 동시성 보장이 안됨
ConcurrentHashMap VS HashTable
synchronized 는 메서드 내부에서 블록으로 처리중.
동시성 제어 HashTable보다 성능이 좋음
volatile 필드 사용 중
Last updated
Was this helpful?