std::thread 的 joinable 函数
时间: 2023-11-07 07:32:33 浏览: 74
std::thread 的 joinable 函数是用来判断一个线程是否可以被 join 的。如果一个线程已经被 join 或者已经被 detached,那么该线程就不再是 joinable 的。
具体来说,如果一个线程对象 t 调用了 joinable() 函数,并且返回值为 true,那么就说明该线程还没有被 join 或者 detach,可以继续操作。如果返回值为 false,那么就说明该线程已经被 join 或者 detach,不可再操作。
相关问题
std::thread joinable 函数作用
std::thread 的 joinable() 函数用于检查线程是否可以被 join() 或 detach()。如果线程已经被 join() 或 detach() 了,那么该函数返回 false;否则,返回 true。
具体来说,当一个线程被创建时,它处于 joinable 状态。在这个状态下,可以调用 join() 或 detach() 函数。如果一个线程被调用了 join() 或 detach(),那么它就不再是 joinable 的,joinable() 函数将返回 false。
这个函数通常在需要检查线程是否可以被 join() 或 detach() 时使用。如果一个线程已经不能被 join() 或 detach() 了,那么再次调用这些函数都将导致运行时错误。因此,在调用这些函数之前,必须先检查线程的状态。
std::thread.joinable()
std::thread.joinable()是一个成员函数,用于检查线程是否可被连接。如果线程对象与一个活动的线程相关联,即线程正在执行或者线程已经被分离,那么该函数将返回true。反之,如果线程对象不与任何线程相关联,即线程已经完成且已经被连接或者线程对象是默认构造的、移动构造的或者已经被移动赋值,那么该函数将返回false。
阅读全文