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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264909.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

https网络编程——openssl安装(两个软链接库libssl、libcrypto)、openssl命令行方式实现CA和证书、介绍SSH

参考&#xff1a;openssl安装方式&#xff08;Ubuntu下&#xff09; 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/115454254?spm1001.2014.3001.5502 目录官方网站1、解压2、编译安装3、生成软连接(两个库)4、测试这是B站openssl视频教程&#xff1a;https…

添加IFrame导致内存溢出的解决过程(IE浏览器,目前发现了原因,还未解决)...

1、 现象 每次动态添加iframe时,iexplore.exe进程占据的内存都会增加&#xff08;大概10M左右&#xff09;&#xff0c;不会自动释放&#xff0c;最终导致内存溢出 2、 解决过程 经过网络的一番搜索&#xff0c;基本上给出的解决方案是清空iframe内容&#xff0c;并移除ifram…

[spring boot] 01 环境搭建 - 配置java和mvn环境

主要内容&#xff1a; 一、IntelliJ IDEA 安装 二、maven 安装 三、设置IDEA和mvn的关系 一、IntelliJ IDEA 安装 1.1. 下载编辑器&#xff1a;前往下载 (Ultimate和Community都是可以的&#xff0c;我一般下载前一个) 1.2. 注册码记得搜索 二、maven 安装 2.1. 下载mvn&#x…

https网络编程——HTTPS简介以及SSL协议详解

参考;HTTPS简介以及SSL协议详解 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/108209248?spm1001.2014.3001.5502 目录1.HTTPS简介2.SSL协议介绍2.1、SSL协议的功能2.2、SSL协议在协议栈的位置2.3、SSL协议组成2.3.1、纪录协议的功能2.3.2、SSL记录协议的示…

linux开机和登陆欢迎信息

这篇文章看似没啥技术含量&#xff0c;但却是非常实用的一个小技巧&#xff0c;通常在面临下面几个问题时就可以显示其意义了&#xff1a;1&#xff09;当你维护的服务器数量较多&#xff08;例如&#xff1a;十几台或更多&#xff09;&#xff0c;希望知道每台服务器的信息时&…

BookSmart Self Publishing

美国Blurb网站推出针对博客用户的自助出书软件已经不是什么新闻 &#xff0c;接下来传出日本人兴“个人出书” 出版社“量体裁衣”,其实去年 “自助出版”就已经进军中国&#xff1b;现在有发现两个国内版的booksmart&#xff0c;一个是麦客&#xff0c;一个是印客,前者是杭州的…

D3---01基础的柱状图制作(转)

---文章转自 http://d3.decembercafe.org/index.html &#xff0c;Created by 十二月咖啡馆。 一个完整的柱形图包含三部分&#xff1a;矩形、文字、坐标轴。 首先要布置一个大小合适的 SVG 画布&#xff1a; 添加 SVG 画布 //画布大小 var width 400; var height 400;//在…

常用UI控件之UIControl

1.UIControl概述UIControl继承于UIView,其子类 有:UIButton,UITextField,UISegmentedControl(分段控件),UISlider(滑块控件),UISwitch(开关控件),UIPageControl(分页控件)2.UISegmentedControl(分段控件)UIsegmentedControl中的每个segment都点击,相当于集成了多个UIButton,点击…

https网络编程——对称加密、非对称加密、单项加密的简单介绍

参考&#xff1a;对称加密、非对称加密、单项加密的简单介绍 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/108213426?spm1001.2014.3001.5502 目录1、对称加密1.1、什么是对称加密&#xff1f;1.2、对称加密的优缺点是什么&#xff1f;1.3、常见的对称加密…

dnn中个性化服务的使用

1.什么是profiles(个性化服务)Profiles是系统面向用户提供的灵活性的个体信息的容器&#xff0c;一个用户的Profile可以使以下一种或多种的集合&#xff1a; &#xff08;1&#xff09; 简单的字符串或其他基础类型 &#xff08;2&#xff09; 一个序列化的实体 &#xff08;3&…

洛谷P1073 Tarjan + 拓扑排序 // 构造分层图

https://www.luogu.org/problemnew/show/P1073 C国有 n n个大城市和 mm 条道路&#xff0c;每条道路连接这 nn个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这 mm 条道路中有一部分为单向通行的道路&#xff0c;一部分为双向通行的道路&#xff0c;双向通…

昨日观看《龙虎门》

本来很想看《谍中谍3》的&#xff0c;想看看汤姆克鲁斯的风采。不过还是选择的《龙虎门》&#xff0c;早就看过介绍说《龙虎门》主要是给人视觉上的冲击&#xff0c;注重打斗。故事的情节比较简单&#xff0c;两兄弟碰面&#xff0c;大哥决定和自己的老大退出江湖引发上面帮派的…

zabbix2.2.3 VMware Vsphere exsi监控配置步骤

zabbix2.2.3 VMware Vsphere exsi监控配置步骤 zabbix2.2.3 VMware Vsphere exsi监控配置步骤,1,添加监控主机2,添加聚集macro;{$PASSWORD} yoodo.com{$URL} http://ip/sdk{$USERNAME} root3,关联监控模板模板用Template Virt VMware;posted on 2014-04-30 10:22 秦瑞It行程…

https网络编程——SSL的加密和解密过程

参考&#xff1a;SSL的加密和解密过程 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/108214105?spm1001.2014.3001.5502 目录现在的加密/解密技术主要有三种&#xff1a;对称加密&#xff0c;非对称加密&#xff0c;和单向加密加密解密的流程图现在的加密/解…

jQuery安装和语法

jQuery是一个JavaScript函数库&#xff0c;可实现HTML元素选取及操作、CSS 操作、HTML事件函数、JavaScript特效和动画、HTML DOM遍历和修改、AJAX等功能。 在html中引用jQuery&#xff0c;需要在head部分通过script并指定src引入 <script src"jquery路径及文件名"…

IIS网站的权限设置问题

2019独角兽企业重金招聘Python工程师标准>>> IIS中的权限与NTFS权限设置的区别&#xff1a; 当浏览器访问被IIS禁止的页面时&#xff0c;返回404错误页面 但浏览器访问被NTFS禁止的文件时&#xff0c;提示用户登录界面 转载于:https://my.oschina.net/changeme/blog…

关于.Net2.0下配置架构的使用

上次用到配置文件,就花了一些时间研究了一下.Net2.0下的配置文件架构,当时感觉确实很强大,完善,但看的有些头晕.迷迷糊糊把实现了要求,就没有再深入研究.最近,想在配置文件里实现一个复杂的配置,多层次嵌套的配置文件,再把.Net中的配置文档研究了一下&#xff0c;经过这两次的研…

https网络编程——openssl中后缀名文件说明以及常用的证书协议

参考&#xff1a;openssl中后缀名文件说明 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/108215177?spm1001.2014.3001.5502 参考&#xff1a;Openssl常用的证书协议有哪些&#xff1f; 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/1082…

idea使用教程

https://www.jianshu.com/p/9c65b7613c30转载于:https://www.cnblogs.com/tnt-33/p/10333267.html

pgbench

参考: http://www.postgres.cn/docs/10/pgbench.html pgbench是pg自带的一个性能测试工具 你也能利用它做性能测试以外的事情 -- 创建测试库 create database pgbench;-- 使用pgbench命令, 初始化测试表 pgbench -i -U zhangtianxiao -p 6001 -d pgbench-- 使用默认表, 默认sq…