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

响应式网站开发教程pdf滴滴出行网站建设

响应式网站开发教程pdf,滴滴出行网站建设,亦庄开发区建设局网站,罗湖区做网站的公司前言 好久没有继续写博客了,原因就是去沉淀了一下偷懒了一下 现在在学网络编程,c的多线程也还在学 这一变博客就讲讲c中的Condition Variable库吧 Condition Variable的简介 官方原文解释 翻译就是 条件变量是一个对象,它能够阻止调用…

前言

好久没有继续写博客了,原因就是去沉淀了一下偷懒了一下

现在在学网络编程,c++的多线程也还在学

这一变博客就讲讲c++中的Condition Variable库吧

Condition Variable的简介

官方原文解释

翻译就是

条件变量是一个对象,它能够阻止调用线程,直到通知恢复。

当调用线程的一个等待函数时,它使用 (mutex ) 来锁定线程。该线程将保持阻塞状态,直到被另一个线程唤醒,该线程对同一对象调用通知函数

这里我们可以看到Condition Variable一般是要和mute锁配合使用来发挥他的最大用处

Condition Variable的使用方法

wait方法

wait方法的原型为两种

void wait (unique_lock<mutex>& lck);
template <class Predicate>
void wait (unique_lock<mutex>& lck, Predicate pred);

第一种为他只是传递一个mutex锁(注意是unique_lock锁)来锁定自己,也就是堵塞当前的线程,直到自己被notify(下面要讲到的函数)唤醒。

第二种和第一种差不多不过他多了一个predicate的参数,这里可以是一个函数,类型为true或者false,我画了一张并不是很准确的图片可以帮助理解一下

大部分时候为了缩短代码的长度他一般会写出lambda表达式,也就是类似与[x] () { x=1; };这样的表达式

它可以等效为

bool F_1(int x){return x=1
}

其中的lambda表达式有许多用法——诸如捕获前面的变量,传递以及引用;这里不多做赘述,论坛里有许多相关的文章,这里提一嘴主要是让读者知道这是一个什么东西,好搜索相应的教程。

wait for函数与wait until函数

wait for函数原型

template <class Clock, class Duration>cv_status wait_until (unique_lock<mutex>& lck,const chrono::time_point<Clock,Duration>& abs_time);
template <class Clock, class Duration, class Predicate>bool wait_until (unique_lock<mutex>& lck,const chrono::time_point<Clock,Duration>& abs_time,Predicate pred);

这里不用仔细看,大部分和前面的wait函数一样,也是有两个函数(一个带predicate的参数,一个不带predicate的参数),但是多了一个设定超时时间,也就是超过时间即使没有获取到mutex锁就不堵塞当前线程了。

第二个参数可以设定一个超时时间比如2秒。

而wait until函数为

template< class Clock, class Duration >
std::cv_statuswait_until( std::unique_lock<std::mutex>& lock,const std::chrono::time_point<Clock, Duration>& timeout_time );template< class Clock, class Duration, class Pred >
bool wait_until( std::unique_lock<std::mutex>& lock,const std::chrono::time_point<Clock, Duration>& timeout_time,Pred pred );

区别与wait until的是wait_until是取一个时间点

notify函数

notify函数分为notify_one以及notify_all

notify_one

notify_one为随机唤醒一个被阻塞的线程(注意为随机)

notify_all

notify_all为唤醒所有的被阻塞的线程

注意

需要注意的是notify唤醒后如果线程被唤醒后依然不满足继续执行下去的条件那么线程又会被重新堵塞。

小结

本章主要简单讲解了Condition Variable的用法以及途径他是一种可以让项目异步执行的一个操作,使得程序有一个很好得到性能。

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

相关文章:

  • 备案不关闭网站wordpress single 主题
  • cuteftp 备份网站商城通网站建设
  • 网站设计制作哪个好seo教程从零开始
  • 制作网站用什么语言微信小程序开发快速入门
  • 哪个网站可以免费做简历罗湖网站建设报价
  • 推广网站多少钱广东融都建设有限公司 公司网站
  • 做网站资质荣誉用的图片天娇易业网站建设公司
  • 网站店铺的图片怎么做的微信小程序上线需要多少钱
  • 商讨网站建设新闻稿设计网站模板
  • 贵州遵义知名网站建设iis5.1 新建网站
  • 邯郸网站建设制作快速网站开发软件
  • 勉县网站建设网站如何做数据储存的
  • 网站建设 需求分析报告企业管理平台软件
  • 网站开发的过程步骤企业网站的用户需求分析
  • Wordpress网站收录不高大概开发一个网站多少钱
  • 自己做一个网站一年的费用贷款app定制开发
  • 建设网站论文服装营销型网站建设
  • 百度推广需要自己有网站吗在win10下建设网站
  • 成品网站nike源码1688WordPress 手机版跳转
  • 网站大全免费完整版免费网站安全
  • 网站推广教程分享seo工作职责
  • 永久免费网站搭建网站服务器 内存
  • 好的ppt模板免费下载网站宁波市海曙区建设局网站
  • 网站栏目结构包括哪些精简网站模板
  • 在线 建站单页面网站带后台济南网站建设公司熊掌号
  • 网站优化课程培训无锡商城网站建设
  • wordpress.org 建站如何在网站做引流
  • 网站开发合同.doc建网站 英文
  • 什么是网站目录结构拼多多标题优化软件
  • 旅游网站建设策划书范文用php做的大型网站