std::thread头文件
#include <thread>
using namespace srd;
class thread{
public:
thread() noexcept = default;
thread(thread&) = delete;//被禁用
thread(const thread&) = delete;
thread(thread&&__t)noexcept;
template<typename _Callable,typename ... _Args>
explicitthread(Callable&& __f,_Args&&.... __args)
};
thread构造函数
template <class Fn,class... Args>
explicitthread(Fn&& fn,Args&&... args);
fn:函数类型
args:参数列表
get_id成员函数
id get_id() const noexcept;
获取线程的id.
join成员函数
void join();
当改线程执行完成后才返回。(即等待子线程执行完毕才继续执行主线程)
joinable成员函数
bool joinable();
检查线程是否可被join。
detach成员函数
void detach();
将本线程从调用线程中分离出来,允许本线程独立执行,thread对象失去对他的关联。(但是当主进程结束的时候,即便是detach出来的子线程不管有没有完成都会被强制杀死)
this_thread命名空间
thread的所有的辅助函数位于std::this_thread命名空间中。
namespace this_thread{
thread::id get_id() _NOEXCEPT;
inline void yield() _NOEXCEPT
void sleep_for()
void sleep_until()
}
yield函数
void yield() noexcept;
使当前线程暂停,等待下次调度。
sleep_for函数
用于使当前线程阻塞一个时间段
std::this_thread::sleep_for(std::chrono::seconds(5));//等待5秒
sleep_until函数
使当前线程阻塞直到某个时间点