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

wordpress 笔记插件下载成都优化网站

wordpress 笔记插件下载,成都优化网站,教学网站开发代码,国内永久免费crm游戏主线程和子线程进行list通信,要用到互斥锁,避免同时操作 1、封装线程基类XThread控制线程启动和停止; 2、模拟消息服务器线程,接收字符串消息,并模拟处理; 3、通过Unique_lock和mutex互斥方位list 消息队列…

主线程和子线程进行list通信,要用到互斥锁,避免同时操作
1、封装线程基类XThread控制线程启动和停止;
2、模拟消息服务器线程,接收字符串消息,并模拟处理;
3、通过Unique_lock和mutex互斥方位list 消息队列
4、主线程定时发送消息给子线程;

代码包含了XThread类(基类)、XMsgSever类(消息)、测试主程序

//XThread.h 类(基类)
#pragma once
#include <thread>//基类
class XThread
{
public:virtual void Start();//启动线程virtual void Stop();//设置线程退出标志,并等待virtual void Wait();//等待virtual bool is_exit();//线程是否退出private:virtual void Main() = 0;//线程入口,纯虚函数,子函数必须单独实现bool is_exit_ = false;std::thread th_;};
//XThread.cpp 类(基类)
#include "XThread.h"using namespace std;//在CPP中引用using namespace
void XThread::Start()//启动线程
{is_exit_ = false;//不要退出th_ = thread(&XThread::Main,this);}
void XThread::Stop()//设置线程退出标志,并等待
{is_exit_ = true;Wait();}
void XThread::Wait()//等待
{if (th_.joinable()){th_.join();}}
bool XThread::is_exit()//线程是否退出
{return is_exit_;
}
//XMsgSever.h 类
#pragma once
#include "XThread.h"
#include <list>
#include <mutex>
class XMsgSever:public XThread
{
public://给当前线程发消息void SendMsg(std::string msg);private:void Main()override;//重写main,override检查名字是否写错std::list<std::string> msgs_;//消息队列缓冲std::mutex mux_;//互斥访问消息队列
};
//XMsgSever.cpp 类
#include "XMsgSever.h"
#include <iostream>using namespace std;void XMsgSever::SendMsg(std::string msg)
{//消息生产者unique_lock<mutex> lock(mux_);//为了保证list的线程安全,加锁msgs_.push_back(msg);
}void XMsgSever::Main()
{//消息消费者while (!is_exit()){this_thread::sleep_for(10ms);unique_lock<mutex> lock(mux_);if (msgs_.empty()){//如果没有消息,则continuecontinue;}while (!msgs_.empty()){//消息处理业务逻辑cout << "recv: " << msgs_.front().c_str() << endl;msgs_.pop_front();}}}
//测试主程序
/*1、封装线程基类XThread控制线程启动和停止;
2、模拟消息服务器线程,接收字符串消息,并模拟处理;
3、通过Unique_lock和mutex互斥方位list<string> 消息队列
4、主线程定时发送消息给子线程;*/#include "XMsgSever.h"
#include <sstream>
using namespace std;int main()
{XMsgSever server;server.Start();//启动子线程,调了Main入口,进入死循环消费信息了for (int i = 0; i < 10; i++){stringstream ss;ss << "msg: " << i + 1;server.SendMsg(ss.str());this_thread::sleep_for(500ms);}server.Stop();printf("All done!\n");return 0;
}

运行结果:
在这里插入图片描述

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

相关文章:

  • 建设局网站模板网页设计期末考试作品
  • 网站在线统计代码开发小程序的目的
  • 建立免费个人网站望牛墩做网站
  • 乡村建设网站中企动力西安分公司
  • 电子商务网站建设课后答案苏州知名网站建设设计公司
  • 怎么建立自己的网站免费广州软件开发公司排行榜
  • 专业微信网站建设报价wordpress 主题制作 加入评论
  • 国家学历提升官网太原百度搜索排名优化
  • 苏州做网站推广的公司哪家好淘宝网卖家中心入口
  • 杭州做网站要多少钱网站建设与规划心得
  • 东莞网站营销策划个人买卖网站怎么做
  • 高校 门户网站 建设背景避免网站 404
  • 合肥专业网站优化如何刷关键词指数
  • 网站栏目设计怎么写wordpress最新版优化
  • 网站代码生成网站网站建设需要硬件设备
  • 网站排名优化外包价钱建设网站用什么时候开始
  • 织梦网站数据库库直接上传的 没有后台备份 需要怎么还原学校网站建设需求分析调研表
  • 做网站准备什么软件六安服装网站建设地址
  • 温州建设集团有限公司网站国内外画画做的好网站
  • 大兴高端网站建设网站建设管理总结
  • 赣州网站网站建设台州市椒江建设工程机械厂网站
  • 个人网站设计首页界面微网站绑定域名
  • 做网站需求网站禁止访问怎么解除
  • 免费网页设计制作网站学校响应式网站模板下载
  • 北京做机柜空调的网站东莞营销推广服务
  • 企业网站建设多钱天堂网在线观看
  • 网站运营管理的内容有哪些兰州app定制开发
  • 中国网页设计师网站定制产品去哪个平台
  • 怎么设置网站关键字网站建设比较好
  • 没有网站如何做淘宝客html个人主页源代码