3.5 等待时间的应用
限定时间的方式
限定时间,有两种方式:
1)明确延时的一个时间段:(_for 作为后缀)std::this_thread::sleep_for(std::chrono::milliseconds(3000));
2)明确延时后的时间点:(_until 作为后缀)std::chrono::steady_clock::time_point timePoint = std::chrono::steady_clock::now() + std::chrono::milliseconds(3000);
std::this_thread::sleep_until(timePoint);
互斥量的等待时间
在超时时间内获取到锁就返回 true,否则返回 false
条件变量的等待时间
例如
线程在收到通知或者指定的时间点超时之前都处于阻塞状态。一旦超时或收到通知,就返回。如果收到通知的情况下参数三还有条件,那么要在满足条件的情况下才会返回。
期望值的等待时间
例如:
在该例子中,计算线程计算需要3s,那么在主线程中,如果从一开始等待这个期望值变为就绪这个过程经过了3.5s(没有超时),那么就返回 true;否则返回超时std::future_status::timeout