CAS操作

towboat / 2024-10-05 / 原文

 

代码大概如下

 

do {
        old_value = atomic_load(&c->count); // 获取当前值
    //1
} while (!atomic_compare_exchange_weak(&c->count, &old_value, old_value + 1));

 

1处c->count可能被其他线程修改