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

企业网络营销网站设计wordpress 本地环境

企业网络营销网站设计,wordpress 本地环境,WordPress后花园,seo产品是什么意思定时器要求在固定的时间异步执行一个操作#xff0c;比如boost库中的boost::asio::deadline_timer#xff0c;以及MFC中的定时器。也可以利用c11的thread, mutex, condition_variable 来实现一个定时器。 1、使用C11中的thread, mutex, condition_variable来实现一个定时器。…定时器要求在固定的时间异步执行一个操作比如boost库中的boost::asio::deadline_timer以及MFC中的定时器。也可以利用c11的thread, mutex, condition_variable 来实现一个定时器。 1、使用C11中的thread, mutex, condition_variable来实现一个定时器。 注此算法会每一个任务创建一个线程不推荐。推荐用最下面第2种时间轮算法 #include iostream #include chrono #include thread #include mutex #include condition_variableclass Timer { public:Timer() :_expired(true), _try_to_expire(false) {}Timer(const Timer t) {_expired t._expired.load();_try_to_expire t._try_to_expire.load();}~Timer() {Expire();}void StartTimer(int interval, std::functionvoid() task) {if (_expired false) {return;}_expired false;std::thread([this, interval, task]() {while (!_try_to_expire) {std::this_thread::sleep_for(std::chrono::milliseconds(interval));task();}{std::lock_guardstd::mutex locker(_mutex);_expired true;_expired_cond.notify_one();}}).detach();}void Expire() {if (_expired) {return;}if (_try_to_expire) {return;}_try_to_expire true;{std::unique_lockstd::mutex locker(_mutex);_expired_cond.wait(locker, [this] {return _expired true; });if (_expired true) {_try_to_expire false;}}}private:std::atomicbool _expired;std::atomicbool _try_to_expire;std::mutex _mutex;std::condition_variable _expired_cond; };int main() {Timer t;t.StartTimer(1000, []() {std::cout Hello World! std::endl; });std::this_thread::sleep_for(std::chrono::seconds(4));t.Expire();return 0; }2、使用时间轮算法Linux内核就有这个算法。这里也有一个用户态的实现供参考github.com/facebook/folly。它的高精度版本能实现微妙级别的定时。下面是一个简单的时间轮定时器的C实现。原文的代码有问题不能循环定时经修改已经支持 #include chrono #include functional #include list #include mutex #include thread #include vectorclass TimerWheel { public:using Task std::functionvoid();explicit TimerWheel(size_t wheel_size, int interval_ms): wheel_size_(wheel_size),interval_ms_(interval_ms),wheel_(wheel_size),current_index_(0) {}~TimerWheel() {Stop();}void Start() {if (running_) {return;}running_ true;thread_ std::thread([this]() {while (running_) {std::this_thread::sleep_for(std::chrono::milliseconds(interval_ms_));Tick();}std::cout timer oooops! std::endl;});thread_.detach();}void Stop() {if (!running_) {return;}running_ false;if (thread_.joinable()) {thread_.join();}}void AddTask(int timeout_ms, Task task) {std::lock_guardstd::mutex lock(mutex_);size_t ticks timeout_ms / interval_ms_;size_t index (current_index_ ticks) % wheel_size_;size_t allindex index;for (size_t i 1 ; allindex wheel_size_; i){allindex index * i;if (allindex wheel_size_)break;wheel_[allindex].push_back(task);}}private:void Tick() {std::lock_guardstd::mutex lock(mutex_);auto tasks wheel_[current_index_];for (const auto task : tasks) {task();}//tasks.clear();current_index_ (current_index_ 1) % wheel_size_;}private:size_t wheel_size_;int interval_ms_;std::vectorstd::listTask wheel_;size_t current_index_;bool running_ false;std::thread thread_;std::mutex mutex_; }; 使用方法 使用static声明以免被析构可在cpp类外全局声明第一个参数为任务容器最大数量第二个参数为定时判断的毫秒数即最低检测时间单位 static TimerWheel timer(10, 1000);在要使用的地方启动并添加任务 timer.Start(); timer.AddTask(2000, []() {std::cout Task 1 std::endl; }); timer.AddTask(3000, []() {std::cout Task 2 std::endl; });可以在需要的时候停止 timer.Stop();原文链接https://blog.csdn.net/sinat_28305511/article/details/131495316
http://www.dnsts.com.cn/news/129830.html

相关文章:

  • 温州网站排名优化公司哪家好装修公司免费网站模版
  • 百度网站建设制作公司家装公司需要什么条件
  • 怎么建设一个宣传网站网站做seo收录
  • jsp网站建设作业东莞专业网
  • 手机端网站模板网站正在建设中模板
  • 接私活 做网站南沙开发区建设和交通局网站
  • 网站建设需要什么样的内容常见的网页布局有哪些
  • 网站后台统计代码网站网页设计内容
  • 永久域名免费注册网站重庆市建设工程信息网官网专家评审
  • 怎么做建设网站首页南昌网站建设大全
  • 中国建设网站工程承包分包法酒店如何做好线上营销
  • 外贸公司没网站旅游网页设计说明书
  • 网软志成免费部队网站源码下载网站建设服务费合同模板
  • 阿里云上如何用iis做网站德州市平原县建设局网站
  • python企业网站开发大桥外语官方网站星做宝贝
  • 编程猫少儿编程网站南宁市规划建设局 网站
  • 网站网页建设论文老师用什么网站做ppt
  • 欧美做的爱爱网站有哪些上海做网站品牌公司有哪些
  • 做网站的框架有广西美丽乡村建设网站
  • 微网站O2O平台平台开发网页广告出价平台
  • 知名建筑设计网站网页版微信登录二维码已失效
  • 中国建设银行网站会员登录wordpress服务器版
  • 设计网站的结构时wordpress打开速度慢
  • arial 网站开发是用犀利wordpress分类标题
  • 网站开发中为什么有两个控制层江苏建站速度忿
  • 上海的网站开发公司电话宠物网站模板
  • 节庆时候的网站是怎么做的直播软件大全
  • 好网站建设公司的网站360网址大全电脑版
  • 外贸响应式网站设计建设网站建设什么挣钱
  • 免费培训学校网站源码做网站主页效果图