병렬처리 관련

AtomicInteger

  • volatileThread1에서 쓰고, Thread2에서 읽는 경우만 동시성을 보장. 두개의 쓰레드에서 쓰기작업을 한다면 문제가 될 수 있습니다.

  • synchronized를 쓰면 안전하게 동시성을 보장하지만 비용이 가장 큼.

  • Atomic 클래스는 CAS(compare-and-swap)를 이용하여 동시성을 보장. 여러 쓰레드에서 데이터를 write해도 문제 없음

  • Integer는 동시성 보장이 안됨

ConcurrentHashMap VS HashTable

  • synchronized 는 메서드 내부에서 블록으로 처리중.

  • 동시성 제어 HashTable보다 성능이 좋음

  • volatile 필드 사용 중

Last updated