更多C++学习笔记,关注 wx公众号:cpp读书笔记
Item 37: Make std::thread
s unjoinable on all paths
每个std::thread
对象处于两个状态之一:可结合的(joinable)或者不可结合的(unjoinable)。可结合状态的std::thread
对应于正在运行或者可能要运行的异步执行线程。比如,对应于一个阻塞的(blocked)或者等待调度的线程的std::thread
是可结合的,对应于运行结束的线程的std::thread
也可以认为是可结合的。
不可结合的std::thread
正如所期待:一个不是可结合状态的std::thread
。不可结合的std::thread
对象包括:
- 默认构造的
std::thread
s。这种std::thread
没有函数执行,因此没有对应到底层执行线程上。 - 已经被移动走的