C++函数thread查询网址:http://www.cplusplus.com/reference/thread/thread/
有不懂的函数可以上去查找!
std::thread头文件
#include<thread>
using namespace std::this_thread;
this_thread命名空间
thread的所有辅助函数位于std::this_thread命名空间中。
namespace this_thread
{
thread::id get_id() _NOEXCEPT;
inline void yield() _NOEXCEPT;
template<class_Rep, class_Period> inline
void sleep_for(const chrono::duration<_Rep,_Period>&_Rel_time)
template<class_Clock,class_Duration>inline
void sleep_until(const chrono::time_point<_Clock,_Duration>&_Abs_time)
}
get_id函数
thread::id get_id() noexcept;
用于获取当前线程id。
yield函数
void yield() noexcept;
使当前线程暂停,等待下次调度。(很短的时间片)
sleep_for(函数)
template<class_Rep, class_Period> inline
void sleep_for(const chrono::duration<_Rep,_Period>&_Rel_time)
用于试当前线程阻塞一个时间段。
std::this_thread::sleep_for(std::chrono::seconds(5));
sleep_until函数
template<class_Clock,class_Duration>inline
void sleep_until(const chrono::time_point<_Clock,_Duration>&_Abs_time)
使当前线程阻塞直到某个时间点。
#include<iostream>
#include<thread>
using namespace std;
using namespace std::this_thread;
using namespace std::chrono;
void ThreadFun(string & str);
int main()
{
thread t1(ThreadFun, string("hello"));
cout << t1.get_id() << endl;
t1.join();
system("pause");
return 0;
}
void ThreadFun(string & str)
{
cout << "线程ID:" << get_id() << endl;
for(int i =0; i<5;i++)
{
cout << str.c_str() << endl;
//sleep_for(seconds(1));//线程休眠1S
yield(); //让线程休眠极小的时间片 给其他线程运行
sleep_until(system_clock::now() + seconds(1));//当前时间+1S
}
}
以上内容均为学习笔记