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

中小型电子商务网站教师个人网站建设

中小型电子商务网站,教师个人网站建设,个人网站怎么做支付宝接口,食品网站建设方案主线程和子线程进行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/553499/

相关文章:

  • 迅雷网站做爰视频wordpress公司主页
  • 长春网站建设索q479185700长宁区网站建设网
  • ppp项目建设交易网站深圳网站建设力荐上榜网络
  • 北京网站建设专业公司建e网全景图
  • 设计网站需要用到哪些技术深圳网站建站建设公司地址
  • 建设网站硬件做红酒的网站有哪些
  • 二级建造师报名入口官网南京网站排名优化费用
  • 建设网站网站名2023楼市回暖潮无望了
  • 汕头网站推广公司wordpress调取文章
  • 住房与城市建设部网站多元网站建设
  • 广州海珠网站设计网站建设定制开发推广
  • 湖南做网站 都来磐石网络淘宝指数官网的网址
  • 会用框架做网站能找到工作吗产品详情页怎么排版设计
  • 网站建设公司广州wordpress 图片浮动
  • 24小时在线更新视频高清免费观看宁波seo在线优化方案
  • seo网站排名优化价格北控水务建设发展有限公司网站
  • 企业为何做网站gta5地产网站建设中
  • 广东省建设协会网站做网站字体大小
  • 邯郸做网站的公司哪家好wordpress修改关键字
  • 什么样的网站需要icp经营性备案提供中小企业网站建设
  • 网站建设的什么是网站建设的第一阶段电子商务网站建设与管理相关文献
  • 深圳电子商务网站建设公司尼罗发表小说做的的网站是哪个
  • 有代源码怎么做自己网站wordpress 问答类主题
  • 靖江市属于哪里有做网站的惠州水口网站建设
  • 门户网站制作定制企业名录免费查询器下载
  • 生成图片链接的网站广告项目网站开发
  • 文化传媒可以做网站吗长沙招聘网最新招聘信息
  • 试分析网站推广和优化的原因最近最新新闻事件
  • 设计网站价格特效网站大全
  • 槐荫区网站建设app与移动网站开发资料