joinable()函数是一个布尔类型的函数,他会返回一个布尔值来表示当前的线程是否是可执行线程(能被join或者detach)。
因为相同的线程不能join两次,也不能join完再detach或反过来,所以joinable函数就是用来判断当前这个线程是否可以join/detach的。
通常不能被joinable有以下几种情况:
- 由thread的缺省构造函数而造成的(thread()没有参数)。
- 该thread被move过(包括move构造和move赋值)。
- 该线程被join或者detach过。