先看thread的定义:
类 std::thread:
class thread {
public:
// 类型:
class id;//线程的id
typedef /*implementation-defined*/ native_handle_type;
// 构造/复制/销毁:
thread() noexcept;//构造函数
template <class F, class ...Args> explicit thread(F&& f, Args&&... args);
~thread();//析构函数
thread(const thread&) = delete;
thread(thread&&) noexcept;
thread& operator=(const thread&) = delete;
thread& operator=(thread&&) noexcept;
// 成员:
void swap(thread&) noexcept;
bool joinable() const noexcept;
void join();
void detach();
id get_id() const noexcept;
native_handle_type native_handle();
// 静态成员:
static unsigned hardware_concurrency() noexcept;
};
class thread::id {
public:
id() noexcept;
};
成员类型:
native_handle_type 实现定义
成员类:
id 表示线程的id
成员函数:
构造函数 构造新的thread对象
析构函数 析构thread对象,必须合并或分离底层线程
operator= 移动thread对象
观察器:
joinable 检查线程是否可合并,即潜在的运行于平行环境中
get_id 返回线程的id
native_handle 返回底层实现定义的线程句柄
hardware_concurrency[静态] 返回实现支持的并发线程数
操作:
join 等待线程完成其执行
detach 容许线程从线程句柄独立开来执行
swap 交换两个thread对象
非成员函数:
std::swap 特化std::swap算法 (函数模板)