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

大良营销网站建设教程好看的界面设计

大良营销网站建设教程,好看的界面设计,宠物网站建站目标,织梦网站仿站系列文章目录 文章目录系列文章目录前言一、基本概念1.1 std::condition_variable1.2 wait()函数1.2.1 wait()带第二个参数1.2.2 wait()不带第二个参数1.2.3 当其他线程用notify_one()或notify_all#xff08;#xff09;1.3 notify函数二、代码实例总结前言 C11多线程…系列文章目录 文章目录系列文章目录前言一、基本概念1.1 std::condition_variable1.2 wait()函数1.2.1 wait()带第二个参数1.2.2 wait()不带第二个参数1.2.3 当其他线程用notify_one()或notify_all1.3 notify函数二、代码实例总结前言 C11多线程wait()和notify()的使用。 一、基本概念 1.1 std::condition_variable private:std::condition_variable my_cond; //生成一个条件变量对象条件变量std::condition_variable、wait()、notify_one()只能通知一个outMsgRecvQueue线程。std::condition_variable实际上是一个类是一个和条件相关的一个类说白了就是等待一个条件达成。这个类需要和互斥量来配合工作用的时候我们要生成这个类的对象 1.2 wait()函数 1.2.1 wait()带第二个参数 wait()用来等一个东西,运行到这一行代码会进行判断。 //这里wait是带第二个参数的。my_cond.wait(sbguard1, [this] { //一个lambda就是一个可调用对象函数if (!msgRecvQueue.empty())return true;return false;}); msgRecvQueue.empty(),是用来判断队列是否为空自己写的函数可参考章节二代码实例 如果第二个参数lambda表达式返回值是true那wait()直接返回,不堵塞。如果第二个参数lambda表达式返回值是false那么wait()将解锁互斥量并堵塞到本行 那堵塞到什么时候为止呢 答堵塞到其他某个线程调用notify_one()或notify_all()成员函数为止 1.2.2 wait()不带第二个参数 my_cond.wait(sbguard1)那么就跟第二个参数lambda表达式返回false效果一样 wait()将解锁互斥量并堵塞到本行堵塞到其他某个线程调用notify_one()成员函数为止 1.2.3 当其他线程用notify_one()或notify_all 会将本wait原来是睡着/堵塞的状态唤醒后wait就开始恢复干活了恢复后wait干什么活 await()不断的尝试重新获取互斥量锁如果获取不到那么流程就卡在wait这里等着获取如果获取到了锁等于加了锁那么wait就继续执行b b有以下三个如果 b.1如果wait有第二个参数(lambda)就判断这个lambda表达式如果lambda表达式为false那么wait又对互斥量解锁然后又休眠在这里等待再次被notify_one唤醒 b.2如果lambda表达式为true则wait返回流程走下来此时互斥锁被锁着。 b.3如果wait没有第二个参数则wait返回流程走下来。 1.3 notify函数 //my_cond.notify_one(); my_cond.notify_all();notify_one()只能通知一个指定的线程。 notify_all()通知所有线程。 二、代码实例 #include stdio.h #include tchar.h #include SDKDDKVer.h #include iostream #include vector #include map #include string #include thread #include list #include mutex #include condition_variableusing namespace std;class A { public://把收到的消息玩家命令入到一个队列的线程void inMsgRecvQueue() //unlock(){for (int i 0; i 100000; i){std::unique_lockstd::mutex sbguard1(my_mutex1);cout inMsgRecvQueue()执行插入一个元素 i endl;msgRecvQueue.push_back(i);//假设这个数字i就是我收到的命令我直接弄到消息队列里边来//假如outMsgRecvQueue()正在处理一个事务需要一段时间而不是正卡在wait()那里等待你唤醒那么此时这个notify_one()这个调用也许就没效果//my_cond.notify_one();//我们尝试把wait()的线程唤醒执行完这行那么outMsgRecvQueue()里边的wait就会被唤醒//唤醒之后的事情后续研究my_cond.notify_all();//......//其他处理代码}return;}//把数据从消息队列中取出的线程void outMsgRecvQueue(){int command 0;while (true){std::unique_lockstd::mutex sbguard1(my_mutex1);my_cond.wait(sbguard1, [this] { //一个lambda就是一个可调用对象函数if (!msgRecvQueue.empty())return true;return false;});//流程只要能走到这里来这个互斥锁一定是锁着的。//一会再写其他的...command msgRecvQueue.front(); //返回第一个元素但不检查元素是否存在msgRecvQueue.pop_front(); //移除第一个元素但不返回cout outMsgRecvQueue()执行取出一个元素: command threadid std::this_thread::get_id() endl;sbguard1.unlock(); //因为unique_lock的灵活性所以我们可以随时的unlock解锁以免锁住太长时间//执行一些其他的动作帮助玩家抽卡抽卡需要100毫秒的处理时间//...//执行100毫秒//} //end while}private:std::listint msgRecvQueue; //容器专门用于代表玩家给咱们发送过来的命令。std::mutex my_mutex1; //创建一个互斥量一把锁头std::condition_variable my_cond; //生成一个条件变量对象 };int main() {A myobja;std::thread myOutnMsgObj(A::outMsgRecvQueue, myobja); //第二个参数 引用才能保证线程里 用的是同一个对象std::thread myOutnMsgObj2(A::outMsgRecvQueue, myobja);std::thread myInMsgObj(A::inMsgRecvQueue, myobja);myInMsgObj.join();myOutnMsgObj.join();myOutnMsgObj2.join();return 0; } 总结 1了解wait()的使用对锁 的影响以及第二参数有无的区别 2condition_variable、wait()、notify_one()或notify_all()如何配合工作。 3理解如何处理线程之间的交互联系
文章转载自:
http://www.morning.ysfj.cn.gov.cn.ysfj.cn
http://www.morning.rtbj.cn.gov.cn.rtbj.cn
http://www.morning.mmsf.cn.gov.cn.mmsf.cn
http://www.morning.xsfg.cn.gov.cn.xsfg.cn
http://www.morning.pfggj.cn.gov.cn.pfggj.cn
http://www.morning.rylr.cn.gov.cn.rylr.cn
http://www.morning.lqffg.cn.gov.cn.lqffg.cn
http://www.morning.kgsws.cn.gov.cn.kgsws.cn
http://www.morning.qdlr.cn.gov.cn.qdlr.cn
http://www.morning.pfntr.cn.gov.cn.pfntr.cn
http://www.morning.lqchz.cn.gov.cn.lqchz.cn
http://www.morning.ohmyjiu.com.gov.cn.ohmyjiu.com
http://www.morning.wjtwn.cn.gov.cn.wjtwn.cn
http://www.morning.hnhkz.cn.gov.cn.hnhkz.cn
http://www.morning.stlgg.cn.gov.cn.stlgg.cn
http://www.morning.htqrh.cn.gov.cn.htqrh.cn
http://www.morning.sbrpz.cn.gov.cn.sbrpz.cn
http://www.morning.kfclh.cn.gov.cn.kfclh.cn
http://www.morning.hrrmb.cn.gov.cn.hrrmb.cn
http://www.morning.tlfzp.cn.gov.cn.tlfzp.cn
http://www.morning.vnuwdy.cn.gov.cn.vnuwdy.cn
http://www.morning.gqwbl.cn.gov.cn.gqwbl.cn
http://www.morning.bmlcy.cn.gov.cn.bmlcy.cn
http://www.morning.jljiangyan.com.gov.cn.jljiangyan.com
http://www.morning.bbgr.cn.gov.cn.bbgr.cn
http://www.morning.xqspn.cn.gov.cn.xqspn.cn
http://www.morning.fgxnb.cn.gov.cn.fgxnb.cn
http://www.morning.nsppc.cn.gov.cn.nsppc.cn
http://www.morning.rhlhk.cn.gov.cn.rhlhk.cn
http://www.morning.ntqnt.cn.gov.cn.ntqnt.cn
http://www.morning.prkdl.cn.gov.cn.prkdl.cn
http://www.morning.hnmbq.cn.gov.cn.hnmbq.cn
http://www.morning.ndmh.cn.gov.cn.ndmh.cn
http://www.morning.lbpqk.cn.gov.cn.lbpqk.cn
http://www.morning.mgskc.cn.gov.cn.mgskc.cn
http://www.morning.fplwz.cn.gov.cn.fplwz.cn
http://www.morning.gcqkb.cn.gov.cn.gcqkb.cn
http://www.morning.dbfp.cn.gov.cn.dbfp.cn
http://www.morning.ctqbc.cn.gov.cn.ctqbc.cn
http://www.morning.jlqn.cn.gov.cn.jlqn.cn
http://www.morning.monstercide.com.gov.cn.monstercide.com
http://www.morning.kxqwg.cn.gov.cn.kxqwg.cn
http://www.morning.rjrnx.cn.gov.cn.rjrnx.cn
http://www.morning.zhoer.com.gov.cn.zhoer.com
http://www.morning.zbhfs.cn.gov.cn.zbhfs.cn
http://www.morning.bpmth.cn.gov.cn.bpmth.cn
http://www.morning.okiner.com.gov.cn.okiner.com
http://www.morning.zwckz.cn.gov.cn.zwckz.cn
http://www.morning.wyjpt.cn.gov.cn.wyjpt.cn
http://www.morning.nqgff.cn.gov.cn.nqgff.cn
http://www.morning.qcbhb.cn.gov.cn.qcbhb.cn
http://www.morning.mrqwy.cn.gov.cn.mrqwy.cn
http://www.morning.tqrjj.cn.gov.cn.tqrjj.cn
http://www.morning.cwkcq.cn.gov.cn.cwkcq.cn
http://www.morning.wcczg.cn.gov.cn.wcczg.cn
http://www.morning.jltmb.cn.gov.cn.jltmb.cn
http://www.morning.ljzgf.cn.gov.cn.ljzgf.cn
http://www.morning.nwfxp.cn.gov.cn.nwfxp.cn
http://www.morning.qrmry.cn.gov.cn.qrmry.cn
http://www.morning.gxwyr.cn.gov.cn.gxwyr.cn
http://www.morning.fwblh.cn.gov.cn.fwblh.cn
http://www.morning.thpzn.cn.gov.cn.thpzn.cn
http://www.morning.mfmx.cn.gov.cn.mfmx.cn
http://www.morning.hctgn.cn.gov.cn.hctgn.cn
http://www.morning.zztmk.cn.gov.cn.zztmk.cn
http://www.morning.sqlh.cn.gov.cn.sqlh.cn
http://www.morning.hsksm.cn.gov.cn.hsksm.cn
http://www.morning.czqqy.cn.gov.cn.czqqy.cn
http://www.morning.zqsnj.cn.gov.cn.zqsnj.cn
http://www.morning.bpmfg.cn.gov.cn.bpmfg.cn
http://www.morning.lrnfn.cn.gov.cn.lrnfn.cn
http://www.morning.pzbqm.cn.gov.cn.pzbqm.cn
http://www.morning.cjnfb.cn.gov.cn.cjnfb.cn
http://www.morning.mswkd.cn.gov.cn.mswkd.cn
http://www.morning.nkiqixr.cn.gov.cn.nkiqixr.cn
http://www.morning.lcbt.cn.gov.cn.lcbt.cn
http://www.morning.fkgcd.cn.gov.cn.fkgcd.cn
http://www.morning.ghwtn.cn.gov.cn.ghwtn.cn
http://www.morning.rjmb.cn.gov.cn.rjmb.cn
http://www.morning.qyfqx.cn.gov.cn.qyfqx.cn
http://www.tj-hxxt.cn/news/264446.html

相关文章:

  • 导购网站怎么推广宝山网站建设推广
  • 有网站了怎么做app北极星招聘网
  • 网站规划建设与管理维护教程深圳优化公司排名
  • 鹤壁哪里做网站专业制作教学课件
  • 在godaddy做网站贵吗作品集制作网站
  • php做商城网站岳阳推广公司
  • 建设银行网站的机构辽源网站建设公司
  • 四川建设网电子招投标网站网站建设 知识库
  • 网站建设短信网站设计与网页设计的区别
  • 大气门户网站红盾工商信息查询网
  • 做毕设好的网站男装网站的网站建设背景
  • 网站建设公司专业开发北京网站wordpress 瀑布
  • 安庆什么网站好小事做淘宝客做自己网站
  • 郑州网站建设出名吗?有没有做租赁的网站
  • 网站站内搜索代码wordpress健康资讯模板
  • 昆明网页建站平台wordpress 首页 显示全文
  • 网站建设需要准备那些内容大型公司网站制作
  • 新野微网站开发莱芜论坛哪个比较好
  • 广西住房和城乡建设厅网站网站论坛模板下载
  • 模板站怎么改成营销型网站怎么从网上找客户
  • 网站开发 价格.net网站开发全过程
  • 网站开发 之cookie中囯联通腾迅
  • 做网站图片广告推广怎么忽悠人的榆林市 网站建设
  • 定制型网站建设服务广西柳州网站建设价格
  • 做网站参考线怎么拉网站英文域名
  • 自己设计网站平面设计的范围
  • 企业门户网站建设方案文档海淀seo搜索优化多少钱
  • 有什么网站可以做投票企业网站安全建设方案
  • 网站转换率外贸公司企业网站
  • 修改wordpress地址网站打不开赤峰微信网站建设