程式碼大概如下
do { old_value = atomic_load(&c->count); // 獲取當前值
//1
} while (!atomic_compare_exchange_weak(&c->count, &old_value, old_value + 1));
1處c->count可能被其他執行緒修改
程式碼大概如下
do { old_value = atomic_load(&c->count); // 獲取當前值
//1
} while (!atomic_compare_exchange_weak(&c->count, &old_value, old_value + 1));
1處c->count可能被其他執行緒修改