两个线程都读到 0,CAS 为什么只让其中一个提交成功?从比较、更新和失败重试,解释 AtomicInteger 怎样避免丢失更新,并说明原子操作的边界与竞争成本。