N° 01 — 목록

'thread' (1)

  1. Backend Development/Java

    Java - 18. thread sync

    두 스레드가 count++를 동시에 실행하면 값이 1만 증가하는가 — 가시성과 원자성// Java 25class Counter { private int count = 0; public void increment() { count++; }}두 스레드가 동시에 counter.increment()를 10,000번씩 호출하면 count가 20,000이 될까? — 아니다. 대부분 17,000~19,000 사이의 값이 나온다. count++는 하나의 연산처럼 보이지만, 실제로는 읽기 → 더하기 → 쓰기 세 단계이며, 두 스레드가 동시에 같은 값을 읽으면 하나의 증가가 사라진다(lost update).이것이 경쟁 조건(race condition)이다. 이 글은 Java 메모리 모델(JMM), synchro..

    · 댓글