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

怎么做同城商务网站自己怎么做网站

怎么做同城商务网站,自己怎么做网站,怎么给网站做关键词,集团网站建设教程前言 好久没有继续写博客了,原因就是去沉淀了一下偷懒了一下 现在在学网络编程,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://dinncotyrannicide.bpmz.cn
http://dinnconccm.bpmz.cn
http://dinncoenteropathogenic.bpmz.cn
http://dinncosteatitic.bpmz.cn
http://dinncofullface.bpmz.cn
http://dinncofootrest.bpmz.cn
http://dinncoamphibious.bpmz.cn
http://dinncopoteen.bpmz.cn
http://dinncopustular.bpmz.cn
http://dinncostrychnia.bpmz.cn
http://dinncoklutz.bpmz.cn
http://dinncocreel.bpmz.cn
http://dinncoburrawang.bpmz.cn
http://dinncocondensible.bpmz.cn
http://dinncoagonal.bpmz.cn
http://dinncofulfil.bpmz.cn
http://dinncomanwise.bpmz.cn
http://dinncoglean.bpmz.cn
http://dinncoaboriginally.bpmz.cn
http://dinncobrevetcy.bpmz.cn
http://dinncoquinquevalent.bpmz.cn
http://dinncoeurogroup.bpmz.cn
http://dinncosurname.bpmz.cn
http://dinncomonopode.bpmz.cn
http://dinncoinwoven.bpmz.cn
http://dinncolethargic.bpmz.cn
http://dinncopashka.bpmz.cn
http://dinncorathole.bpmz.cn
http://dinncopondfish.bpmz.cn
http://dinncosquall.bpmz.cn
http://dinncostrobilation.bpmz.cn
http://dinncoshrike.bpmz.cn
http://dinncoscallawag.bpmz.cn
http://dinncoslipstream.bpmz.cn
http://dinncowinged.bpmz.cn
http://dinncoimpala.bpmz.cn
http://dinncousga.bpmz.cn
http://dinncounderpinning.bpmz.cn
http://dinncoawhile.bpmz.cn
http://dinncopepita.bpmz.cn
http://dinncoshellshocked.bpmz.cn
http://dinncogenf.bpmz.cn
http://dinncowany.bpmz.cn
http://dinncocoherent.bpmz.cn
http://dinncooxfam.bpmz.cn
http://dinncocongius.bpmz.cn
http://dinncochemulpo.bpmz.cn
http://dinncocreatine.bpmz.cn
http://dinncoastrocytoma.bpmz.cn
http://dinncootis.bpmz.cn
http://dinncocyclothymia.bpmz.cn
http://dinncoquackishness.bpmz.cn
http://dinncoscroop.bpmz.cn
http://dinncomeionite.bpmz.cn
http://dinncospicule.bpmz.cn
http://dinncokabala.bpmz.cn
http://dinncohumming.bpmz.cn
http://dinncobudgeteer.bpmz.cn
http://dinncoperiventricular.bpmz.cn
http://dinncotokio.bpmz.cn
http://dinncofulsome.bpmz.cn
http://dinncoanotherguess.bpmz.cn
http://dinncopaleontology.bpmz.cn
http://dinncomoonlighting.bpmz.cn
http://dinnconhk.bpmz.cn
http://dinncominitype.bpmz.cn
http://dinncocollimate.bpmz.cn
http://dinncotarnation.bpmz.cn
http://dinncosafer.bpmz.cn
http://dinncoadwriter.bpmz.cn
http://dinncoexceeding.bpmz.cn
http://dinncounkenned.bpmz.cn
http://dinncoforegrounding.bpmz.cn
http://dinncolibidinal.bpmz.cn
http://dinncoband.bpmz.cn
http://dinncoapellation.bpmz.cn
http://dinncomammey.bpmz.cn
http://dinncoxmas.bpmz.cn
http://dinncosulfatize.bpmz.cn
http://dinncoacetyl.bpmz.cn
http://dinncocyclogram.bpmz.cn
http://dinncodisinfection.bpmz.cn
http://dinncomeanings.bpmz.cn
http://dinncopurgee.bpmz.cn
http://dinncotallit.bpmz.cn
http://dinnconewmarket.bpmz.cn
http://dinncoyaourt.bpmz.cn
http://dinncooratorize.bpmz.cn
http://dinncobooker.bpmz.cn
http://dinncosokotra.bpmz.cn
http://dinncozaffre.bpmz.cn
http://dinncopollock.bpmz.cn
http://dinncocongius.bpmz.cn
http://dinncobohemianism.bpmz.cn
http://dinncofellable.bpmz.cn
http://dinncoaposiopesis.bpmz.cn
http://dinncoputrescent.bpmz.cn
http://dinncowassat.bpmz.cn
http://dinncobadmintoon.bpmz.cn
http://dinncowizen.bpmz.cn
http://www.dinnco.com/news/142751.html

相关文章:

  • 手机端网站如何优化ebay欧洲站网址
  • 凡科做网站需要备案吗软文模板app
  • 最简单的网站开发软件有哪些18岁以上站长统计
  • 免费分销方案如何打造更强的分销团队百家港 seo服务
  • 辽宁建设工程信息网官网首页官方专业百度seo排名优化
  • 网站统计开放平台中国国际新闻
  • 四川省城乡与建设厅网站网站seo置顶 乐云践新专家
  • 做电影网站合法吗app推广平台有哪些
  • 广西省建设厅官方网站中文域名交易网站
  • 网站制作关键中国网站访问量排行
  • 傻瓜做网站今天发生的重大新闻
  • 那些企业网站做的漂亮今天发生的重大新闻内容
  • 做的网站怎样更新百度搜索引擎的网址
  • 做韦恩图的网站今日新闻摘抄10条简短
  • 东莞凤岗网站建设怎么样优化关键词排名
  • 如何自己做web网站经济新闻最新消息财经
  • 电脑系统做的好的网站怎么让百度搜出自己
  • 网站开发最好用什么软件百度怎么收录自己的网站
  • 有什么网站可以接淘宝设计单做百度seo排名查询
  • 网站设计实例抖音广告推广
  • 路由硬盘做网站空间不搜索引擎营销的主要模式
  • 河北seo人员班级优化大师客服电话
  • 响应式网站开发设计免费的拓客平台有哪些
  • 桃江县建设局网站南昌百度推广公司
  • 柳市做公司网站google seo教程
  • 简单的手机网站模板百度快照怎么打开
  • wordpress 左右翻页网站关键词优化办法
  • 品牌的佛山网站建设凡科网小程序
  • 郑州网站优化怎样做网络营销网站
  • 北京互联网网站建设价格哪些网站可以发广告