C++并发实战14:时间

本文介绍了C++中关于时间的操作,包括使用std::chrono::system_clock::now()获取当前时间,利用std::chrono::duration定义时间间隔,以及检查时钟周期是否可调。还讨论了时间间隔的转换、算术运算和等待时间的设定,如this_thread::sleep_for。此外,提到了时间点的概念,以及std::timed_mutex和std::recursive_timed_mutex在等待时间控制上的应用。
摘要由CSDN通过智能技术生成

     std::chrono::system_clock::now()//返回系统当前时间

     时钟周期:std::ratio<1,25> //表示1s内25个周期

     std::chrono::system_clock::is_steady() //测试系统时钟周期是否可调

     std::chrono::duration<short,std::ratio<60,1> >  //时间间隔,第一个参数short(或long,double)表示数目count是个具体数字,第二个模板参数ratio<60,1>表示单位即一个时钟周期多少时间,这里是60s一个周期即1min。时间间隔之间的转换,小单位向大单位转换可能会被截取,如下:

std::chrono::milliseconds ms(54802);
std::chrono::seconds s=std::chrono::duration_cast<std::chrono::seconds>(ms);//54s

      wait类型的函数可以加上duration作为等待时间间隔,如下:

std::future<int> f=std::async(some_task);
if(f.wait_for(std::chrono::milliseconds(35))==std::future_status::ready)//在35ms内等待共享状态就绪,可能有三种情形返回:future ready,timeout,共享状态里有函数立即返回
 do_something_with(f.get());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值