c++ 学习之 多线程(三) thread类的成员函数
前言
thread类提供了几个成员函数,由于构造函数之前有讲过,所以本文着重分析一下其他函数的用法。
正文
1.~thread()
析构函数,用来销毁thread对象,但是调用析构函数的前提必须是该thread对象是不可连接的,否则不可以。
2.joinable()
调用这个函数来判断该thread对象是否可连接,可以返回真,否则返回假。
以下几种是不可连接的:
*由默认构造函数创建的对象
*被移动过的对象
*调用过join()或detach()的对象
也就是一个执行着线程并且没有调用过join()和detach()的线程就是可连接的。
我们通常在调用join()和detach()调用joinable来防止多次调用join()和detach().
注意,只有不可连接的thread对象才可以通过调用析构函数来回收,否则将抛出异常。
3.join()