【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++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

如何利用Java获取当天的开始和结束时间

《如何利用Java获取当天的开始和结束时间》:本文主要介绍如何使用Java8的LocalDate和LocalDateTime类获取指定日期的开始和结束时间,展示了如何通过这些类进行日期和时间的处... 目录前言1. Java日期时间API概述2. 获取当天的开始和结束时间代码解析运行结果3. 总结前言在J

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更