返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++sleep()和usleep()的区别
  • 795
分享到

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

C++sleep()usleep() 2023-03-09 17:03:34 795人浏览 薄情痞子
摘要

sleep() 和 usleep()主要区别前者单位为秒,后者为微妙(*1e6) c++ sleep() 和 usleep() 代码如下:设置一个时间参数,分别向sleep()和us

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()的区别的文章就介绍到这了,更多相关C++ sleep() usleep()内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

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

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

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

猜你喜欢
  • C++sleep()和usleep()的区别
    sleep() 和 usleep()主要区别前者单位为秒,后者为微妙(*1e6) C++ sleep() 和 usleep() 代码如下:设置一个时间参数,分别向sleep()和us...
    99+
    2023-03-09
    C++ sleep() usleep()
  • C++ sleep()和usleep()的区别是什么
    本篇内容介绍了“C++ sleep()和usleep()的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!sleep() ...
    99+
    2023-07-05
  • 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
  • C语言的sleep、usleep、nanosleep等休眠函数的使用
    目录引子(一) sleep 函数sleep 函数的用法sleep 函数的返回值sleep 函数的参数(二) usleep 函数usleep 函数的用法usleep 函数的返回值usl...
    99+
    2023-03-09
    C语言 sleep usleep nanosleep
  • sleep () 和 wait () 有什么区别?
    sleep () 方法 sleep () 方法是Thread类的静态方法,可以通过Thread.sleep()来调用。 它是线程的一个静态方法,用于让当前线程休眠一段指定的时间。 sleep () 不会释放线程持有的锁,因此其他线程无...
    99+
    2023-08-30
    java
  • C语言的sleep、usleep、nanosleep等休眠函数如何使用
    这篇文章主要讲解了“C语言的sleep、usleep、nanosleep等休眠函数如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言的sleep、usleep、nanosleep等...
    99+
    2023-07-05
  • java wait和sleep的区别是什么
    所以sleep()和wait()方法的最大区别是: ·sleep()睡眠时,保持对象锁,仍然占有该锁; ·而wait()睡眠时,释放对象锁。 ·但是wait()和sleep()都可以通过interrupt()方法打断线程的...
    99+
    2021-07-13
    java教程 java wait sleep 区别
  • java sleep()和wait()的区别点总结
    1、区别说明 wait()是Object的方法,sleep()是Thread的方法。 wait()必须采用同步方法,不需要sleep()方法。 线程在同步方法中执行sleep()方法...
    99+
    2024-04-02
  • java中wait和sleep的区别是什么?
    sleep:sleep 方法属于 Thread 类中方法,表示让一个线程进入睡眠状态,等待一定的时间之后,自动醒来进入到可运行状态,不会马上进入运行状态,因为线程调度机制恢复线程的运行也需要时间,一个线程对象调用了 sleep方法之后,并不...
    99+
    2021-04-11
    java wait sleep
  • java中sleep()和wait()的区别有哪些
    这篇文章主要介绍java中sleep()和wait()的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象;...
    99+
    2023-06-14
  • java中yield()和sleep()的区别有哪些
    这篇文章将为大家详细讲解有关java中yield()和sleep()的区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Androi...
    99+
    2023-06-15
  • 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
  • java中sleep()和wait()有什么区别
    这篇文章主要介绍java中sleep()和wait()有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统...
    99+
    2023-06-14
  • python中sleep和wait有什么区别
    这期内容当中小编将会给大家带来有关python中sleep和wait有什么区别,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Pyth...
    99+
    2023-06-14
  • linux中nanosleep() 和 sleep()有什么区别
    linux中nanosleep() 和 sleep()有什么区别?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。什么是Linux系统Linux是一种免费使用和自由传播的类UN...
    99+
    2023-06-13
  • java中sleep()和yield()有哪些区别
    这篇文章主要介绍了java中sleep()和yield()有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。4 sleep()和yield()的区别1) sleep()...
    99+
    2023-06-03
  • java线程sleep和wait的区别有哪些
    Java中的线程sleep和wait方法有以下区别:1. 调用wait方法的线程会放弃自己的锁,并进入等待状态,直到其他线程调用相同...
    99+
    2023-09-25
    java
  • 在Java中sleep()和wait()有什么区别
    Java中sleep()和wait()的区别:sleep()是线程类的静态方法,而wait()是Object类的方法。Sleep()可以用时间指定来使他自动醒过来,如果时间不到你只能调用interreput()来强行打断,而Wait()可以...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作