一、关于std::future
成员函数wait_for()
:
1.1 关于std::future_status
:
std::future_status
是一个枚举类型,其值有三:
// ENUM future_status
enum class future_status {
// names for timed wait function returns
ready,
timeout,
deferred//延迟执行,当std::async()第一个参数为std::lanuch::deferred时生效。
};
1.2 wait_for()
:
返回值类型为future_status
,该函数将本线程阻塞在当前,并等待一段时间,后继续执行,若在等待时间内wait_for()
绑定线程执行完毕,则返回ready
,未执行完毕则返回timeout
。
int myThread1(int arg)
{
cout << arg << endl;
cout << "myThread() START..." << " thread_id:" << std::this_thread::get_id() << endl;
Sleep(5000);
cout << "myThread() END..." << " thread_id:" << std::this_thread::get_id() << endl;
return 5;
}
int main()
{
cout << "main thread id:" << std::this_thread::get_id() << endl;
std::future<int>result = std::async(myThread1, 3);
cout << "continue..."