C++ 线程库 - 可连接函数


描述

它返回线程对象是否可连接。

宣言

以下是 std::thread::joinable 函数的声明。

bool joinable() const noexcept;

C++11

bool joinable() const noexcept;

参数

没有任何

返回值

如果线程可连接,则返回 true,否则返回 false。

例外情况

无抛出保证- 永远不会抛出异常。

数据竞赛

对象被访问。

例子

在下面的 std::thread::joinable 示例中。

#include <iostream>
#include <thread>
#include <chrono>
 
void foo() {
   std::this_thread::sleep_for(std::chrono::seconds(2));
}
 
int main() {
   std::thread t;
   std::cout << "before joinable: " << t.joinable() << '\n';

   t = std::thread(foo);
   std::cout << "after joinable: " << t.joinable() << '\n';

   t.join();
   std::cout << "after joining, joinable: " << t.joinable() << '\n';
}

输出应该是这样的 -

before joinable: 0
after joinable: 1
after joining, joinable: 0
线程.htm