当前位置: 首页 > news >正文

哪个网站建设平台支持花呗分期番禺建设网站哪家好

哪个网站建设平台支持花呗分期,番禺建设网站哪家好,seo网站营销推广全程实例pdf,兼职招聘信息最新招聘1.std::lock_guard std::lock_guard其实就是简单的RAII(Resource Acquisition Is Initialization)封装,资源获取即初始化。在构造函数中进行加锁,析构函数中进行解锁,这样可以保证函数退出时,锁一定被释放…

1.std::lock_guard

std::lock_guard其实就是简单的RAII(Resource Acquisition Is Initialization)封装,资源获取即初始化。在构造函数中进行加锁,析构函数中进行解锁,这样可以保证函数退出时,锁一定被释放。 

不可以对 std::lock_guard 调用 unlock 进行解锁操作。std::lock_guard 是一个非常简单的互斥量管理类,设计初衷是提供一种 RAII(资源获取即初始化)风格的锁机制,当 std::lock_guard 对象创建时锁定互斥量,并在对象销毁时析构函数里自动解锁互斥量。std::lock_guard 没有提供解锁和重新锁定的功能。它的接口非常简单,只包含构造函数和析构函数,没有 unlock 或 lock 方法。这使得 std::lock_guard 更加轻量级,但也更不灵活。 

构造函数:

explicit lock_guard(mutex_type& m); // 引用类型,锁定互斥量m,析构函数中解锁// 其中mutex_type是模板参数的别名
template <class Mutex>
class lock_guard {
public:using mutex_type = Mutex; // 定义 mutex_type 为模板参数 Mutexexplicit lock_guard(mutex_type& m);~lock_guard();// ...
};

2.std::unique_lock

转自:https://www.cnblogs.com/moodlxs/p/10111843.html

std::lock_guard的功能超集, 封装了各种加锁操作,阻塞的,非阻塞的,还可以结合条件变量一起使用,基本上对锁的各种操作都封装了。所以性能和内存开销都比std::lock_guard大得多,需要有选择地使用。 std::unique_lock也会在析构的时候自动解锁,所以说,是std::lock_guard的功能超集。

支持多种加锁模式,构造函数:

unique_lock() noexcept; // 默认构造函数创建一个不与任何互斥量相关联的 unique_lock 对象
explicit unique_lock(mutex_type& m); //创建一个与互斥量 m 相关联并立即锁定它的 unique_lock 对象,通过析构函数unlock
unique_lock( mutex_type& m, std::defer_lock_t t );   //延迟加锁,之后再调用lock()主动加锁,可以不用unlock,可以通过unique_lock的析构函数unlock
unique_lock( mutex_type& m, std::try_to_lock_t t ); //尝试加锁
unique_lock( mutex_type& m, std::adopt_lock_t t );   //马上加锁
unique_lock(unique_lock&& u) noexcept; // 移动构造函数。原来的 unique_lock 对象将不再持有互斥量。

尝试加锁例子:

std::mutex mlock;void work1(int& s) {for (int i = 1; i <= 5000; i++) {std::unique_lock<std::mutex> munique(mlock, std::try_to_lock);if (munique.owns_lock() == true) {// 判断是否加锁成功s += i;}else {// 执行一些没有共享内存的代码}}
}

延迟加锁例子:

void work1(int& s) {for (int i = 1; i <= 5000; i++) {std::unique_lock<std::mutex> munique(mlock, std::defer_lock);if (munique.try_lock() == true) {// 判断当前是否能locks += i;}else {// 处理一些没有共享内存的代码}}
}

移动构造函数例子:

std::unique_lock<std::mutex> munique1(mlock);
std::unique_lock<std::mutex> munique2(std::move(munique1));
// 此时munique1失去mlock的权限,并指向空值,munique2获取mlock的权限

http://www.yayakq.cn/news/727543/

相关文章:

  • 万网发布网站网站建设 验证码
  • 仿做网站网站功能设计怎么写
  • 响应网站和模板网站有哪些更改wordpress主题
  • 建设招标网 官方网站网页尺寸规范
  • 未来中森网站建设公司怎么进入外网
  • 做网站产品介绍哈尔滨网站建设云聚达
  • 做果盘网站找代理注册公司的弊端
  • 直播网站app开发做网站阜新
  • 视频网站建设需要多少钱建设学院2级网站的作用
  • 网站正在建设中的网页怎么做广告服务平台
  • 大公司网站建设wordpress提速插件
  • python做爬虫和做网站360免费wifi密码
  • 南宁网站怎么制作公司微博推广别人知道你使用推广了吗
  • 深圳沙井做公司网站展厅设计规划
  • php按步骤做网站给企业做网站的公司
  • 做网站论坛 前置许可自己做网站怎么上传
  • 网站添加在线支付什么是wap
  • 查询网站流量的网址网站建设书 模板下载
  • 企业 门户型网站区别张槎网站设计
  • wordpress做小说网站吗无极在线网站播放
  • 做网站需要买域名吗网页设计语言
  • 哪些网站做的美上海建筑工程有限公司
  • 一个企业网站需要多少钱wordpress模板电商
  • 做国际网站怎么能快速打开金融企业类网站模板
  • 学会建网站如何做网络营销免费的黄台app下载
  • 陕西恒业建设集团网站惠州网站建设排名
  • asp.net 做网站微信crm管理系统
  • 基本网站建设网站建设做什么科目
  • 广州网站设计公司招聘注册网站需要多少
  • 用自己电脑建设网站微信小程序开发平台入口