全部来自于gitbook  C++并发编程(中文版)

需要对一个还未销毁的std::thread对象使用join()或detach()。如果想要分离一个线程,可以在线程启动后,直接使用detach()进行分离。如果打算等待对应线程,则需要细心挑选调用join()的位置。当在线程运行之后产生异常,在join()调用之前抛出,就意味着这次调用会被跳过。 避免应用被抛出的异常所终止,就需要作出一个决定。

采用RAII方式来实现线程正常退出

class thread_guard
{
std::thread& t;
public:
explicit thread_guard(std::thread& t_):
t(t_)
{}
~thread_guard()
{
if(t.joinable()) //
{
t.join(); //
}
}
thread_guard(thread_guard const&)=delete; //
thread_guard& operator=(thread_guard const&)=delete;
};

最新文章

  1. pygame学习笔记
  2. 第12章 Java字符串
  3. 分享 rabbitMQ入门详解
  4. EntityFramework Reverse POCO Generator工具
  5. 使用axes函数在matlab绘图中实现图中图的绘制
  6. C#分布式缓存二:Asp.Net中使用Couchbase
  7. linux设备驱动归纳总结(一)内核的相关基础概念【转】
  8. Mysql导入导出工具Mysqldump和Source命令用法详解
  9. 0c-42-ARC模式下如何兼容非ARC的类
  10. 使用Yeoman搭建 AngularJS 应用 (11) —— 让我们搭建一个网页应用
  11. Oracle 插入数据效率对比
  12. java_jdbc_oracle简单总结(2016-11-23)
  13. GCD 单例
  14. XML Schema <第三篇>
  15. hdu 1005解题报告
  16. 随记之 -- diy相册
  17. struct 类型指针技巧
  18. 解决vi编辑器不能使用方向键和退格键问题的两种方法
  19. MSIL实用指南-一维数组的操作
  20. meta twitter 属性

热门文章

  1. 科学论文写作 Tips
  2. JAVA8中Predicate,Consumer,UnaryOperator,Function接口的应用
  3. php下关于字符串与数组的相互转换的函数
  4. python爬虫小实例
  5. 【JVM学习笔记】双亲委托机制存在的意义
  6. ASP.NET MVC Model 验证总结
  7. 使用CompletableFuture进行异步任务编排
  8. int与Integer的一个小区别
  9. CF 1133B Preparation for International Women's Day
  10. session的垃圾回收机制