iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++ sleep()和usleep()的区别是什么
  • 447
分享到

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

2023-07-05 10:07:00 447人浏览 泡泡鱼
摘要

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

本篇内容介绍了“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()的区别是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: C++ sleep()和usleep()的区别是什么

本文链接: https://www.lsjlt.com/news/351157.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • C++ sleep()和usleep()的区别是什么
    本篇内容介绍了“C++ sleep()和usleep()的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!sleep() ...
    99+
    2023-07-05
  • C++sleep()和usleep()的区别
    sleep() 和 usleep()主要区别前者单位为秒,后者为微妙(*1e6) C++ sleep() 和 usleep() 代码如下:设置一个时间参数,分别向sleep()和us...
    99+
    2023-03-09
    C++ sleep() usleep()
  • Linux中sleep和usleep的区别是什么
    在Linux中,`sleep`和`usleep`是两个常用的函数,用于延迟执行。 `sleep`函数用于将当前进程暂停指定的时间,单...
    99+
    2023-10-25
    Linux
  • linux 的sleep()、usleep()、nanosleep()函数的区别
    sleep()、usleep()和nanosleep()函数是Linux下用于延时的函数,它们之间的区别如下:1. sleep()函...
    99+
    2023-09-16
    linux
  • java中wait和sleep的区别是什么
    在Java中,`wait()`和`sleep()`是两个不同的方法,用于不同的场景。1. `wait()`: `wait()`是Ob...
    99+
    2023-08-08
    java wait sleep
  • java之sleep和wait的区别是什么
    sleep是Thread类的静态方法,而wait是Object类的实例方法。 sleep方法会让当前线程暂停执行一段时间,不会释放...
    99+
    2024-03-08
    java
  • sleep () 和 wait () 有什么区别?
    sleep () 方法 sleep () 方法是Thread类的静态方法,可以通过Thread.sleep()来调用。 它是线程的一个静态方法,用于让当前线程休眠一段指定的时间。 sleep () 不会释放线程持有的锁,因此其他线程无...
    99+
    2023-08-30
    java
  • linux中nanosleep() 和 sleep()有什么区别
    linux中nanosleep() 和 sleep()有什么区别?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。什么是Linux系统Linux是一种免费使用和自由传播的类UN...
    99+
    2023-06-13
  • python中sleep和wait有什么区别
    这期内容当中小编将会给大家带来有关python中sleep和wait有什么区别,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Pyth...
    99+
    2023-06-14
  • java中sleep()和wait()有什么区别
    这篇文章主要介绍java中sleep()和wait()有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统...
    99+
    2023-06-14
  • Java编程语言中sleep()和yield()的区别是什么
    这篇文章主要讲解了“Java编程语言中sleep()和yield()的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java编程语言中sleep()和yield()的区别是什么”吧...
    99+
    2023-06-17
  • c++中usleep的用法是什么
    在C++中,usleep函数用于使当前线程进入睡眠状态指定的微秒数。usleep函数接受一个参数,即要睡眠的微秒数。usleep函数...
    99+
    2024-03-14
    c++
  • 在Java中sleep()和wait()有什么区别
    Java中sleep()和wait()的区别:sleep()是线程类的静态方法,而wait()是Object类的方法。Sleep()可以用时间指定来使他自动醒过来,如果时间不到你只能调用interreput()来强行打断,而Wait()可以...
    99+
    2024-04-02
  • java和c++的区别是什么
    Java和C++是两种常见的编程语言,在以下几个方面有所不同:1. 语法结构:Java是一种面向对象的编程语言,其语法结构较为简洁和...
    99+
    2023-08-30
    java
  • C++和C中const的区别是什么
    本篇内容介绍了“C++和C中const的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!const,这个词字面意思为:常数。这就表示...
    99+
    2023-06-21
  • Java中sleep和wait方法有什么区别
    本篇内容主要讲解“Java中sleep和wait方法有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中sleep和wait方法有什么区别”吧!一、sleep和wait方法的区别根...
    99+
    2023-06-30
  • C#中 new和override的区别是什么
    本篇文章为大家展示了C#中 new和override的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。override是指“覆盖”,是指子类覆盖了父类的方法。子类的对象无法再访问父类中的该方...
    99+
    2023-06-17
  • c++中ReleaseDC和DeleteDC的区别是什么
    在C++中,ReleaseDC和DeleteDC是两个函数,它们的区别如下:1. ReleaseDC函数:这个函数用于释放设备上下文...
    99+
    2023-09-27
    c++
  • C#中Task.Delay()和Thread.Sleep()的区别是什么
    这篇文章将为大家详细讲解有关C#中Task.Delay()和Thread.Sleep()的区别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、简介Thread.Sleep()是同步延...
    99+
    2023-06-15
  • C# 中StringBuilder和String的区别是什么
    今天就跟大家聊聊有关C# 中StringBuilder和String的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C# StringBuilder和String区别Str...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作