1、当并发量较小的时候
atomic num;
if (atomic_add(1) > 1) {atomic_sub(1);return;
}
// 确保只有一个线程可以进入
2、当并发量大的时候,需要进行分梯度处理
#define maxNum 10000
if (atomic_add(1) > maxNum) {atomic_sub(1);return;
}if (atomic_add(maxNum) > maxNum + maxNum) {atomic_sub(1 + maxNum);return;
}...atomic_sub(1 + maxNum);