두 increment가 하나로 줄어드는 lost update

barrier로 두 worker의 read와 write를 같은 단계에 맞춘다.

  1. 둘 다 read

    counter 0을 각각 복사한다

    snapshot 0
  2. 둘 다 add

    local 값은 각각 1이 된다

    private
  3. 둘 다 write

    공유 counter에 1을 저장한다

    overwrite
  4. 결과

    요청 2회지만 증가는 1회다

    lost update

핵심: 복합 increment 전체를 하나의 lock 또는 atomic operation으로 보호해야 한다.