基于CAS实现自旋锁

发布时间 2023-06-20 23:50:58作者: simp00

#include<aomic>

class SpinLock{
public:
    SpinLock():flag_(false){}
    void lock(){
      bool except = false;
      while(!flag_.compare_exchange_weak(expect,true))
      {  
        expect = false;
      }

    }

void unlock()
{
  flag_.store(false);
}
private:
std::atmoic<bool>flag_;
  };