C++11 —— 简易的旋转锁类
简易的旋转锁
使用 C++11 的原子操作,实现的简易旋转锁(xspinlock.h):
/*** @file xspinlock.h* <pre>* Copyright (c) 2019, Gaaagaa All rights reserved.* * 文件名称:xspinlock.h* 创建日期:2019年01月22日* 文件标识:* 文件摘要:简易的旋转锁类。* * 当前版本:1.0.0.0* 作 者:* 完成日期:2019年01月22日* 版本摘要:* * 历史版本:* 原作者 :* 完成日期:* 版本摘要:* </pre>*/#ifndef __XSPINLOCK_H__
#define __XSPINLOCK_H__#include <atomic>
#include <thread>// x_spinlock_t/*** @class x_spinlock_t* @brief 简易的旋转锁类。*/
class x_spinlock_t
{// constructor/destructor
public:x_spinlock_t(void) { }~x_spinlock_t(void) { }// public interfaces
public:/**********************************************************//*** @brief 加锁操作接口。*/void lock(void){while (m_xspin_flag.test_and_set(std::memory_order_acquire))std::this_thread::yield();}/**********************************************************//*** @brief 解锁操作接口。*/void unlock(void){m_xspin_flag.clear(std::memory_order_release);}// data members
private:std::atomic_flag m_xspin_flag = ATOMIC_FLAG_INIT; ///< 旋转标志
};#endif // __XSPINLOCK_H__
转载于:https://www.cnblogs.com/VxGaaagaa/p/10320072.html
C++11 —— 简易的旋转锁类相关推荐
- Windows线程同步--关键段和旋转锁
关键段 关键段(Critical Section)是一小段代码,它在执行之前需要独占对一些共享资源的访问权.这种方式可以让多行代码以"原子方式"对资源进行操控.这里的原子方式,指的 ...
- C++11实战——多线程的日志类
C++11实战--多线程的日志类 C++标准库的std::cout和std::ofstream重载了operator<<,单线程使用非常简单.但由于其并非线程安全,在多线程中使用则需要自己 ...
- Java黑皮书课后题第10章:*10.11(几何:Circle2D类)定义Circle2D类
*10.11(几何:Circle2D类)定义Circle2D类 题目 程序 代码 Test11.java Test11_Circle2D.java 运行实例 关于UML 题目 程序 Test11.ja ...
- Xp下的程序编译成linux,WinXP下打造自己的linux 0.11简易编译环境(原创)
http://caiwei8888.blog.163.com/blog/static/3017424120101913353856/ 学习赵炯博士的<linux 0.11 内核完全注释>, ...
- 11.1.1 认识StringBuffer类(1)
第11章 Java常用类库 通过本章的学习可以达到以下目标: 掌握String与StringBuffer的区别,可以熟练使用StringBuffer中的各种方法进行相关操作. 能够自己编写一个得到日期 ...
- Qt5 学习之路及嵌入式开发教程11:Qt5标准输入对话框类及QSlider控件
Qt5 学习之路及嵌入式开发教程11:Qt5标准输入对话框类及QSlider控件 这次任务要完成弹出窗口及QSlider控件的界面设计及代码编写 一.Qt5弹出窗口 1.界面式布局 建立项目工程文件 ...
- JVM(Java SE 11版本)加载类和接口
本文介绍了Java虚拟机(Java SE 11版本)加载类和接口. 加载类和接口 加载是指查找具有特定名称的类或接口类型的二进制形式的过程.典型的做法是,查找事先由Java编译器从源代码计算而来二进制 ...
- android逆时针方向横屏,Android屏幕镜像工具 “Scrcpy “增加了旋转锁,提高了质量...
Android屏幕镜像工具 "Scrcpy "增加了旋转锁,提高了质量 Mark Do 2020年5月5日 暂无评论 阅读 4,408 次 好用的移动工具scrcpy应用在最新版本 ...
- Qt重定向QDebug,自定义一个简易的日志管理类
0.前言 相对于第三方的日志库,在 Qt 中使用 QDebug 打印更便捷,有时候也需要对 QDebug 输出进行重定向,如写入文件等. 在 Qt4 中使用 qInstallMsgHandler 函数 ...
最新文章
- 厦门大学江保详:缺陷检测的讲解!
- 大学生学业指导类书目
- 基础贪心算法(HDU2037今年暑假不AC)
- oracle table 函数使用
- 信佑无盘主服务器密码,(信佑无盘帮助手册.doc
- 信息学奥赛一本通 1965:【14NOIP普及组】珠心算测验 | 洛谷 P2141 [NOIP2014 普及组] 珠心算测验
- (补)20200105:整数转罗马数字
- eBay和PayPal公布分拆细节:双方还将紧密合作。
- 根据当前节点获取所有上层结构的组织(递归算法)
- 12557是oracle什么错误吗,在做oracle standby时,出现ORA-12557错误.
- Windows11 专业版 体验分享
- 【UCHome二次开发】UCHome模板语法…
- CSS3科技雷达扫描动画js特效
- 地图瓦片编号与经纬度的换算关系及不同源坐标之间的相互转换
- 搜狗浏览器安装插件(.crx)
- 1 PPT默认初始设置(主题颜色、撤回次数、自动保存、图片压缩、字体嵌入、多格式导出、参考线、默认字体、默认样式和清除占位符)
- 几大ERP软件实施方法与过程
- Well-ordered String
- java 禁用迅雷_【Java】我擦!迅雷的代码结构竟然被扒了精光~
- 大型水利投资集团,打造数智财资管理新范式