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

青海网站建设费用网络技术服务合同模板

青海网站建设费用,网络技术服务合同模板,网站建设品牌推广seo,网站开发费是无形资产吗纯C风格线程池 纯C 风格线程池可参考这篇文章 https://llfc.club/category?catid225RaiVNI8pFDD5L4m807g7ZwmF#!aid/2c2IJUcCUOfzEQQRRdOXYIZuCjP 视频教程 相关线程池和并发编程的视频可以看看这个连接#xff1a; https://www.bilibili.com/video/BV1Xt421H7M7/?vd_s…纯C风格线程池 纯C 风格线程池可参考这篇文章 https://llfc.club/category?catid225RaiVNI8pFDD5L4m807g7ZwmF#!aid/2c2IJUcCUOfzEQQRRdOXYIZuCjP 视频教程 相关线程池和并发编程的视频可以看看这个连接 https://www.bilibili.com/video/BV1Xt421H7M7/?vd_source8be9e83424c2ed2c9b2a3ed1d01385e9 支持信号机制的线程池 我的项目中期待封装一个类内部有个线程池处理外部投递的内容这个类同时支持对外发送信号等同时这个类是一个单例类那么这个类可以继承QOjbject支持信号机制并且其内部可以封装一个线程池响应外部投递的任务结合纯C版本封装了如下在QT环境使用的线程池目前已经投入到生产中。 用到的头文件 #include QObject #include queue #include vector #include thread #include queue #include memory #include functional #include mutex #include atomic #include future头文件编写 #ifndef SEQSCHEDULER_H #define SEQSCHEDULER_H //wwc 处理维护关机流程清洗等时序执行的类 class SeqScheduler: public QObject {Q_OBJECT public:~ SeqScheduler();static SeqScheduler Inst();templatetypename F, typename ... Argsauto CommitTask(F func, Args ... args) -std::futuredecltype(std::forwardF(func)(std::forwardArgs(args)...)) {using RetType decltype(std::forwardF(func)(std::forwardArgs(args)...));if (_b_stop.load()) {return std::futureRetType{};}auto bind_func std::bind(std::forwardF(func), std::forwardArgs(args)...);auto pack_task std::make_sharedstd::packaged_taskRetType(void)(bind_func);auto future pack_task-get_future();{std::lock_guardstd::mutex lock(_work_mtx);_work_que.push([pack_task]() {(*pack_task)();});}_work_con.notify_one();return future;}private: SeqScheduler(const SeqScheduler) delete;SeqScheduler operator (const SeqScheduler) delete;SeqScheduler(unsigned int num std::thread::hardware_concurrency());std::queuestd::functionvoid(void) _work_que;std::mutex _work_mtx;std::condition_variable _work_con;std::atomicbool _b_stop;std::vectorstd::thread _pool;std::atomic_int _thread_num; };#endif // SEQSCHEDULER_H类的具体实现 #include seqscheduler.hSeqScheduler::SeqScheduler(unsigned int num ): _b_stop(false) {if (num 1)_thread_num 1;else_thread_num num;for (int i 0; i _thread_num; i) {_pool.emplace_back([this]() {for (; !(_b_stop.load());) {std::unique_lockstd::mutex unique_locker(_work_mtx);_work_con.wait(unique_locker, [this]() {if (_b_stop.load()) {return true;}if (_work_que.empty()) {return false;}return true;});if (_b_stop.load()) {return;}//出队auto task _work_que.front();_work_que.pop();unique_locker.unlock();task();}});}}SeqScheduler SeqScheduler::Inst() {static SeqScheduler inst;return inst; }SeqScheduler::~SeqScheduler(){_b_stop true;{std::unique_lockstd::mutex unique_locker(_work_mtx);_work_con.notify_all();}for (auto td : _pool) {if (td.joinable()) {std::cout join thread td.get_id() std::endl;td.join();}} } 使用线程池 线程池的使用可以通过如下方式投递任务任务在后台自动执行 void Test(){SeqScheduler::Inst().CommitTask([]() {asyncLog(slot machine perfusion called );}); }如需等待任务完成可以用wait或者get void Test(){auto task_future SeqScheduler::Inst().CommitTask([]() {asyncLog(slot machine perfusion called );});task_future.wait(); }
http://www.w-s-a.com/news/468123/

相关文章:

  • 做网站销售电销好做吗网站开发毕业设计代做
  • 成都学网站建设费用帝国cms与wordpress
  • 如何刷网站排名品牌设计的英文
  • 富阳有没有做网站的房产局官网查询系统
  • 建设网站列表aliyun oss wordpress
  • 做PPT的辅助网站wordpress拖拽式主题
  • 商城网站源码seo兼职58
  • 汽车租赁网站的设计与实现全网营销推广哪家正规
  • 做网站时怎么取消鼠标悬停如何设计软件界面
  • 建德网站设计公司中国十大热门网站排名
  • 网站与新媒体建设测评方案163企业邮箱官网入口
  • 怎样做下载网站页面设计参评
  • 哈尔滨住建局网站首页设计制作过程
  • php投资理财企业网站模板网站呼叫中心 建设工期
  • 查数据的权威网站silverlight 做的网站
  • 网站开发外包网站贵阳网站建设 网站制作
  • 官方微网站西安景观设计公司排行
  • 广州学做网站视频代做网站
  • 沈阳公司建站seo课程培训班
  • 杭州做微信网站软件公司网站建设毕业设计中期进度报告
  • 怎么做谷歌这样的网站如何建立一个网站放视频
  • 园区网站建设调研报告北京朝阳区哪里有网站开发
  • 网站角色权限wordpress 优化版
  • 购物网站ppt怎么做网络公司注册多少钱
  • 学做衣服上什么网站好贴吧高级搜索
  • 贵州 跨境电商网站建设做淘宝店铺有哪些好的网站
  • 广州正规网站制作公司网站搭建公司
  • ui设计零基础好学吗珠海网站建设优化推广
  • 网站开发多少费用火车头采集wordpress发布时间
  • 有没有做皮艺的网站教育培训网站建设ppt