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