Trung BìnhJava iconJava

Race condition là gì và làm thế nào để phòng tránh?

Race condition xảy ra khi nhiều thread truy cập shared data đồng thời, kết quả cuối phụ thuộc vào thứ tự thực thi — không thể đoán trước.

Ví dụ: hai thread cùng increment count mà không synchronize dẫn đến kết quả sai. Phòng tránh:

  1. synchronization (synchronized, Lock)
  2. atomic variables (AtomicInteger)
  3. immutable objects
  4. thread-safe collections (CopyOnWriteArrayList). Nguyên nhân gốc rễ: non-atomic operations trên shared state. Test bằng cách tăng concurrency để expose lỗi

Xem toàn bộ Java cùng filter theo level & chủ đề con.

Mở danh sách Java