我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C++ sleep()和usleep()的区别是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C++ sleep()和usleep()的区别是什么

本篇内容介绍了“C++ sleep()和usleep()的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

sleep() 和 usleep()主要区别前者单位为秒,后者为微妙(*1e6)

C++ sleep() 和 usleep()

代码如下:设置一个时间参数,分别向sleep()和usleep()方法传入该参数,打印sleep和usleep前后的系统时间戳

#include <time.h>#include <stdio.h>#include <iostream>#include <unistd.h>using namespace std;int main(int argc, char *argv[]){    int sleep_time = 100;    cout << "sleep before time: " << time(NULL) << endl;    sleep(sleep_time);    cout << "sleep after time: " << time(NULL) << endl;    cout << "======================" << endl;    cout << "usleep before time: " << time(NULL) << endl;    usleep(sleep_time);    cout << "usleep after time: " << time(NULL) << endl;}

运行结果:

sleep before time: 1560257692
sleep after time: 1560257792
======================
usleep before time: 1560257792
usleep after time: 1560257792

从运行结果来看,sleep()方法执行前后的时间戳相减正好是sleep_time大小,打印的时间戳是以秒为单位的,所以sleep()方法将程序挂起使用的单位是秒级别的;从usleep()执行前后的时间戳来看,感觉上程序并没有被挂起,这是因为usleep()方法将程序挂起的使用的单位是微秒级别的(1,000,000 微秒 = 1秒)所以程序看起来并没有被挂起,下面我们将打印的时间戳改为微秒级别的看看。

可以通过<sys/time.h>库中的gettimeofday()方法来拿到当前系统的微秒级别时间。

#include <stdio.h>#include <iostream>#include <unistd.h>#include <sys/time.h>using namespace std;int main(int argc, char *argv[]){    int sleep_time = 100;    cout << "sleep before time: " << time(NULL) << endl;    sleep(sleep_time);    cout << "sleep after time: " << time(NULL) << endl;    cout << "======================" << endl;    cout << "usleep before time: " << time(NULL) << endl;    usleep(sleep_time);    cout << "usleep after time: " << time(NULL) << endl;    cout << "======================" << endl;    struct timeval tv;      gettimeofday(&tv,NULL);     cout << "not usleep before time: " << tv.tv_sec<<"s,"<<tv.tv_usec<<"微秒"<<endl;    usleep(0);    gettimeofday(&tv,NULL);     cout << "not usleep after time: " << tv.tv_sec<<"s,"<<tv.tv_usec<<"微秒"<<endl;    cout << "======================" << endl;    gettimeofday(&tv,NULL);     cout << "usleep before time: " << tv.tv_sec<<"s,"<<tv.tv_usec<<"微秒"<<endl;    usleep(sleep_time);    gettimeofday(&tv,NULL);     cout << "usleep after time: " << tv.tv_sec<<"s,"<<tv.tv_usec<<"微秒"<<endl;}

运行结果

sleep before time: 1560260201
sleep after time: 1560260301
======================
usleep before time: 1560260301
usleep after time: 1560260301
======================
not usleep before time: 1560260301s,491772微秒
not usleep after time: 1560260301s,491948微秒
======================
usleep before time: 1560260301s,491962微秒
usleep after time: 1560260301s,492191微秒

从使用usleep(0)和使用了usleep(100)方法来看,执行前后的时间差差不多相差100,从而可以看出usleep()是以微秒级别为单位的。

“C++ sleep()和usleep()的区别是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C++ sleep()和usleep()的区别是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C++ sleep()和usleep()的区别是什么

本篇内容介绍了“C++ sleep()和usleep()的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!sleep() 和 usl
2023-07-05

C++sleep()和usleep()的区别

本文主要介绍了C++sleep()和usleep()的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-03-09

Linux中sleep和usleep的区别是什么

在Linux中,`sleep`和`usleep`是两个常用的函数,用于延迟执行。`sleep`函数用于将当前进程暂停指定的时间,单位是秒。例如,`sleep(5)`将会暂停当前进程5秒钟。`usleep`函数用于将当前进程暂停指定的时间
2023-10-25

java wait和sleep的区别是什么

所以sleep()和wait()方法的最大区别是: ·sleep()睡眠时,保持对象锁,仍然占有该锁; ·而wait()睡眠时,释放对象锁。 ·但是wait()和sleep()都可以通过interrupt()方法打断线程的暂停状态,从而使线程
java wait和sleep的区别是什么
2021-07-13

java中wait和sleep的区别是什么

在Java中,`wait()`和`sleep()`是两个不同的方法,用于不同的场景。1. `wait()`: `wait()`是Object类的方法,是用于线程间的同步和通信。当一个线程执行了一个对象的`wait()`方法后,它会释放该对象
2023-08-08

java中wait和sleep的区别是什么?

sleep:sleep 方法属于 Thread 类中方法,表示让一个线程进入睡眠状态,等待一定的时间之后,自动醒来进入到可运行状态,不会马上进入运行状态,因为线程调度机制恢复线程的运行也需要时间,一个线程对象调用了 sleep方法之后,并不会释放他所持有的所有
java中wait和sleep的区别是什么?
2021-04-11

java之sleep和wait的区别是什么

sleep是Thread类的静态方法,而wait是Object类的实例方法。sleep方法会让当前线程暂停执行一段时间,不会释放锁,而wait方法会让当前线程暂停执行,并释放锁。sleep方法必须在synchronized块或方法内使用
java之sleep和wait的区别是什么
2024-03-08

sleep () 和 wait () 有什么区别?

sleep () 方法 sleep () 方法是Thread类的静态方法,可以通过Thread.sleep()来调用。 它是线程的一个静态方法,用于让当前线程休眠一段指定的时间。 sleep () 不会释放线程持有的锁,因此其他线程无
2023-08-30

linux中nanosleep() 和 sleep()有什么区别

linux中nanosleep() 和 sleep()有什么区别?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。什么是Linux系统Linux是一种免费使用和自由传播的类UN
2023-06-13

java中sleep()和wait()有什么区别

这篇文章主要介绍java中sleep()和wait()有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统
2023-06-14

python中sleep和wait有什么区别

这期内容当中小编将会给大家带来有关python中sleep和wait有什么区别,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Pyth
2023-06-14

Java编程语言中sleep()和yield()的区别是什么

这篇文章主要讲解了“Java编程语言中sleep()和yield()的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java编程语言中sleep()和yield()的区别是什么”吧
2023-06-17

c++中usleep的用法是什么

在C++中,usleep函数用于使当前线程进入睡眠状态指定的微秒数。usleep函数接受一个参数,即要睡眠的微秒数。usleep函数的声明如下:int usleep(useconds_t usec);其中,usec表示要睡眠的微秒数。例
c++中usleep的用法是什么
2024-03-14

java和c++的区别是什么

Java和C++是两种常见的编程语言,在以下几个方面有所不同:1. 语法结构:Java是一种面向对象的编程语言,其语法结构较为简洁和规范,采用类和对象的概念进行编程;而C++则是一种多范式的编程语言,支持面向对象、面向过程和泛型编程,语法相
2023-08-30

c 和java的区别是什么

Java和C都是指令式语言(Imperative Language),不同的是Java有面向对象(OO)成分在里面,而C是完全面向过程的,C的高级版本C++、C#支持面向对象。另外一个不同是,Java跨平台,既不同的操作系统都可以通过JVM来解释Java程序,
c 和java的区别是什么
2019-02-23

Java中sleep和wait方法有什么区别

本篇内容主要讲解“Java中sleep和wait方法有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中sleep和wait方法有什么区别”吧!一、sleep和wait方法的区别根
2023-06-30

C++和C中const的区别是什么

本篇内容介绍了“C++和C中const的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!const,这个词字面意思为:常数。这就表示
2023-06-21

C# 中override和overload的区别是什么

今天就跟大家聊聊有关C# 中override和overload的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C# override和overload特点重载(Overlo
2023-06-17

C#中 new和override的区别是什么

本篇文章为大家展示了C#中 new和override的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。override是指“覆盖”,是指子类覆盖了父类的方法。子类的对象无法再访问父类中的该方
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录