转载:C++11: 线程的暂停和继续和停止_hai7song的专栏-CSDN博客_c++ 线程暂停

重点:

通过设置一个类,类里面加入线程,然后采用标志位来控线程的暂停、恢复和停止。

有点意思!

#include <future>
#include <initializer_list>
#include <type_traits>
#include <ctime>
#include <atomic>
using namespace std;class ThreadTest
{
public:ThreadTest()=default;~ThreadTest() = default;public:void Run();void Stop();void Pause(); //暂停void Resume();//恢复
private:condition_variable m_cv;mutex mu;bool m_isStop{false};bool m_isPause{ false };atomic<int> num = 0;
};
void ThreadTest::Run()
{thread t([&] {while (true){if (!m_isStop){cout << "current process is" << num++ << endl;this_thread::sleep_for(chrono::seconds(1));unique_lock<mutex> lock(mu);m_cv.wait(lock, [this] {return !m_isPause; });}}});t.detach();
}
void ThreadTest::Stop()
{m_isStop = true;
}
void ThreadTest::Pause()
{unique_lock<mutex> lock(mu);m_isPause = true;m_cv.notify_one();
}
void ThreadTest::Resume()
{unique_lock<mutex> lock(mu);m_isPause = false;m_cv.notify_one();
}int main()
{ThreadTest t;t.Run();int ch;while ((ch=getchar())!='q'){switch (ch){case 'p':t.Pause();break;case 'r':t.Resume();break;case 's':t.Stop();break;default:break;}}return 0;
}

C++ :线程的暂停、恢复和停止相关推荐

  1. python 实现线程的暂停, 恢复, 退出详解及实例

    Python中可以是threading模块实现多线程, 但是模块并没有提供暂停, 恢复和停止线程的方法, 一旦线程对象调用start方法后, 只能等到对应的方法函数运行完毕. 也就是说一旦start后 ...

  2. Qt之线程的开始暂停恢复停止

    一.前言 软件开发中,使用到线程就不可避免的要实现线程的暂停恢复停止等操作,总不可能说线程一旦启动就直接运行到结束了,中途不能停止啥的.线程的开始以及结束都比较简单,都有对应的接口可以调用,线程的暂停 ...

  3. python暂停和恢复_python-线程的暂停, 恢复, 退出

    我们都知道python中可以是threading模块实现多线程, 但是模块并没有提供暂停, 恢复和停止线程的方法, 一旦线程对象调用start方法后, 只能等到对应的方法函数运行完毕. 也就是说一旦s ...

  4. Python关于Threading暂停恢复解决办法

    我们都知道python中可以是threading模块实现多线程, 但是模块并没有提供暂停, 恢复和停止线程的方法, 一旦线程对象调用start方法后, 只能等到对应的方法函数运行完毕. 也就是说一旦s ...

  5. python下载文件暂停恢复_Python关于Threading暂停恢复解决办法

    我们都知道python中可以是threading模块实现多线程, 但是模块并没有提供暂停, 恢复和停止线程的方法, 一旦线程对象调用start方法后, 只能等到对应的方法函数运行完毕. 也就是说一旦s ...

  6. java线程的停止,暂停,恢复*

    暂停.恢复和停止操作对应在线程Thread的API就是suspend().resume()和stop().但是这些API是过期的,也就是不建议使用的.不建议使用的原因主要有: 以suspend()方法 ...

  7. c#语言窗体运行暂停指令,C#线程启动、暂停、恢复、停止怎么实现

    论坛的高手你们好,本人是一个菜鸟,肯请大家帮个忙实现如下功能: 首先窗体界面如下: 怎么实现"start"启动线程."pause"暂停线程."resu ...

  8. 潇洒郎: python threading 实现线程暂停、恢复、停止功能

    结果: 线程暂停.恢复.停止见注释 obj-T1-0obj-T2-0main 0obj-T1-1obj-T2-1obj-T2-2main 1obj-T1-2obj-T1-3obj-T2-3main 2 ...

  9. Qt实用技巧:使用OpenCV库的视频播放器(支持播放器操作,如暂停、恢复、停止、时间、进度条拽托等...

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 需求 使用OpenCV库的视频播放器(支持播放器操作,如暂停.恢复 ...

最新文章

  1. apche 虚拟主机设置
  2. python编程语言创始人-Python简史:开发者的小小副业如何成为全球最热编程语言?...
  3. 在二叉树中找到累加和为指定值的最长路径长度
  4. java在线学习系统源码_Java在线考试系统源码
  5. 谷歌大脑Wasserstein自编码器:新一代生成模型算法
  6. 【Qt】Qt中的快捷键汇总
  7. X265-线程池-1
  8. python读取日志统计ip_如何通过命令行统计和排列访问日志里的ip数
  9. wso2 esb_使用WSO2 ESB进行邮件内容过滤
  10. linux嵌入式开发流程,听听牛人怎么说
  11. 蓝桥杯 算法提高 日期计算
  12. 华为机试——计算字符个数
  13. 统计mysql里每条SQL语句执行的时间
  14. 火眼公司发布公开漏洞奖励计划
  15. 如何卸载密码保护的Symantec Endpoint Protection
  16. 用python画猫咪怎么画-python画猫
  17. python数据挖掘-oneR算法
  18. C语言系列:6、结构
  19. 【OpenGL】(step1)开个窗口
  20. python读取身份证中的生日信息

热门文章

  1. Redis实战篇一 (短信登录)
  2. 腾讯CEO马化腾:从“抄袭”开始创业之路
  3. Python 内置模块tkinter —— 秒表计时器
  4. 现在个人博客网站还能够备案吗?是否需要企业身份才能备案?
  5. centos下Intel核显应用ffmpeg的qsv插件编解码
  6. PRA是个啥?老板表示很满意!
  7. android夯实总结(设计、细节及思想)
  8. 中国IT工作者35岁后的发展出路调查报告(4)
  9. littleVGL学习笔记8——lv_cont 容器
  10. 小程序 配置域名 业务域名_使域名成为您的业务