自旋锁,可以用C++自己写一个,网上也很多。
#include <atomic>
class SpinLock {
public:
SpinLock() : _flag(false) {}
void lock() {
bool expect = false;
while (!_flag.compare_exchange_weak(expect, true)) {
expect = false;
}
}
void unlock() {
_flag.store(false);
}
private:
std::atomic<bool> _flag;
};