导入
简介
该库使我们能够根据时间需求运行多线程。
时间库 是 C++ 新增多线程功能的关键组成部分。例如,你可以让当前线程休眠 15 毫秒:std::this_thread::sleep_for(std::chrono::milliseconds(15)),或者尝试在 2 分钟内获取锁:lock.try_lock_until(now + std::chrono::minutes(2))。此外,chrono 库还便于进行简单的性能测试:
1// performanceMeasurement.cpp 2#include <iostream> 3#include <vector> 4#include <chrono> 5using namespace std; 6 7int main(){ 8 std::vector<int> myBigVec(10000000, 2011); 9 std::vector<int> myEmptyVec1; 10 11 auto begin= std::chrono::high_resolution_clock::now(); 12 myEmptyVec1 = myBigVec; 13 auto end= std::chrono::high_resolution_clock::now() - begin; 14 15 auto timeInSeconds = std::chrono::duration<double>(end).count(); 16 std::cout << timeInSeconds << std::endl; // 0.0150688800 <- 每次执行结果可能不同 17 18 return 0; 19}
时间库由三个核心组件构成:时间点(time point)、时间间隔(time duration)和时钟(clock)。
时间点(Time point):
时间点由一个起始时刻(称为“纪元”,epoch)以及一段额外的时间间隔定义。
时间间隔(Time duration):
时间间隔是两个时间点之间的差值,以“计数次数”(ticks)表示。
时钟(Clock):
时钟包含一个起始点(纪元)和一个计时周期(tick),从而可以计算当前的时间点。