【c++】6.延时函数sleep()、usleep()、delay()和计算程序运行时间的函数clock()

2024-06-16 21:38

本文主要是介绍【c++】6.延时函数sleep()、usleep()、delay()和计算程序运行时间的函数clock(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

延时函数delay(),sleep(),usleep()

推荐使用以下延迟:

#include <unistd.h>  // 在gcc编译器中,使用的头文件因gcc版本的不同而不同
sleep(10);  //程序挂起10s 
usleep(100);  //程序挂起100us

可以参考:Linux的sleep()usleep()的使用和区别: https://blog.csdn.net/shenwansangz/article/details/50108197


也可以使用下面方法:

#include <time.h>       /* 调用时务必加上该头文件 */
// 自定义的一个延时函数delay()
void delay(int seconds) //  参数必须为整型,表示延时多少秒
{clock_t start = clock();clock_t lay = (clock_t)seconds * CLOCKS_PER_SEC;while ((clock()-start) < lay);}void delay(double seconds) //  参数为双精度浮点型。这个函数是我修改的上面那个函数,重载一下。{double start = clock();double lay = (double)seconds * CLOCKS_PER_SEC;while ((clock()-start) < lay);}

百度Apollo里面用的是延时微秒usleep(unsigned int __useconds)和延时秒sleep(unsigned int __seconds)函数,他们的输入参数也都是整数,不能为浮点数,
比如不能sleep(0.5)来表示延时0.5s。 但是当函数设定的计时器到期,或者接收到信号、程序发生中断都会导致程序继续执行。


计算运行时间的函数:
#include <ctime>
#include <iostream>
// g++ test.cpp `pkg-config opencv --libs --cflags` -std=c++11 -pthread -o testint main() {clock_t timr_start = clock();double a = 12345 * 54321;std::cout << "time use " << (clock() - timr_start) / (double)CLOCKS_PER_SEC<< "s" << std::endl;std::cout << "time use "<< 1000 * (clock() - timr_start) / (double)CLOCKS_PER_SEC << "ms"<< std::endl;
}            

下面是运行两次该程序的截图:
在这里插入图片描述
在这里插入图片描述
可知,计算程序运行时间,最好使用毫秒ms,因为使用秒s会有精度损失。

这篇关于【c++】6.延时函数sleep()、usleep()、delay()和计算程序运行时间的函数clock()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1067617

相关文章

C++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

Python实现批量提取BLF文件时间戳

《Python实现批量提取BLF文件时间戳》BLF(BinaryLoggingFormat)作为Vector公司推出的CAN总线数据记录格式,被广泛用于存储车辆通信数据,本文将使用Python轻松提取... 目录一、为什么需要批量处理 BLF 文件二、核心代码解析:从文件遍历到数据导出1. 环境准备与依赖库

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么

postgresql使用UUID函数的方法

《postgresql使用UUID函数的方法》本文给大家介绍postgresql使用UUID函数的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录PostgreSQL有两种生成uuid的方法。可以先通过sql查看是否已安装扩展函数,和可以安装的扩展函数

MySQL字符串常用函数详解

《MySQL字符串常用函数详解》本文给大家介绍MySQL字符串常用函数,本文结合实例代码给大家介绍的非常详细,对大家学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql字符串常用函数一、获取二、大小写转换三、拼接四、截取五、比较、反转、替换六、去空白、填充MySQL字符串常用函数一、

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域

C++中assign函数的使用

《C++中assign函数的使用》在C++标准模板库中,std::list等容器都提供了assign成员函数,它比操作符更灵活,支持多种初始化方式,下面就来介绍一下assign的用法,具有一定的参考价... 目录​1.assign的基本功能​​语法​2. 具体用法示例​​​(1) 填充n个相同值​​(2)

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更