C++以atomic_flag实现简单自旋锁
#include<atomic>
using namespace std;
class spinlock
{
//默认构造,其值为false(clear状态),C++20以前可以使用ATOMIC_FLAG_INIT将值初始,C++20弃用。
atomic_flag flag;
public:
void lock()
{
//此函数将值设为true并返回旧值.当返回false,即该线程成功获取了锁
//其他线程将返回true值,即被阻塞(忙等待将造成浪费)
while(
原创
2020-09-01 00:43:12 ·
350 阅读 ·
0 评论