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);


互斥量的等待时间

3.5 等待时间的应用
在超时时间内获取到锁就返回 true,否则返回 false


条件变量的等待时间

3.5 等待时间的应用
例如
3.5 等待时间的应用
线程在收到通知或者指定的时间点超时之前都处于阻塞状态。一旦超时或收到通知,就返回。如果收到通知的情况下参数三还有条件,那么要在满足条件的情况下才会返回。


期望值的等待时间

3.5 等待时间的应用

例如:
3.5 等待时间的应用
在该例子中,计算线程计算需要3s,那么在主线程中,如果从一开始等待这个期望值变为就绪这个过程经过了3.5s(没有超时),那么就返回 true;否则返回超时std::future_status::timeout