Một atomic operation hoàn tất không thể chia cắt — không thread nào thấy trạng thái nửa vời; memory visibility là việc write của thread này có được thread kia thấy không; memory barrier ép thứ tự để những write đó trở nên nhìn thấy được. Lock không phải mối lo duy nhất — memory model mới là điều cần quan tâm.
Atomicity
Một atomic op (vd. fetch_add, compare-and-swap) chạy như một bước không thể chia cắt, nên không race nào tách được nó. Phần cứng và ngôn ngữ cung cấp atomic cho counter và flag mà không cần một lock đầy đủ.
();
counter.incrementAndGet();
