C++休眠的方法

Windows的API函数 Sleep(INFINITE); 休眠时间为永久
Linux的API函数sleep 没有直接表示无限时间的参数,根据POSIX标准,sleep() 函数的参数应该是 unsigned int 类型,因此最大可以接受的参数值是 UINT_MAX,即 4294967295 秒。sleep(UINT_MAX); 休眠42亿多秒,换算后大约是 49710 天,相当于大约 136 年。

#include <iostream>
#include <limits.h>
#include <unistd.h>

int main() {
    std::cout << UINT_MAX << std::endl;
    sleep(UINT_MAX);
    return 0;
}

C++可以用条件变量 std::condition_variable 实现类似的效果。

#include <condition_variable>
#include <iostream>
#include <mutex>
#include <thread>

std::mutex mtx;
std::condition_variable cv;

int main() {
    std::cout << "Main thread starts..." << std::endl;

    std::mutex mtx;
    std::unique_lock<std::mutex> lock(mtx);
    cv.wait(lock); // 主线程永久等待条件变量

    std::cout << "Main thread ends..." << std::endl;

    return 0;
}

在这个示例中,主线程在调用 cv.wait(lock); 之后会永久等待,直到其他线程通过 cv.notify_one() 或 cv.notify_all() 唤醒它。所以只要不唤醒它,就等同于windows的Sleep(INFINITE)

相关推荐

  1. C++休眠方法

    2024-07-10 01:18:04       23 阅读
  2. c++ 线程激活和休眠

    2024-07-10 01:18:04       27 阅读
  3. ubuntu22.04禁止自动休眠几种方式

    2024-07-10 01:18:04       23 阅读
  4. C#StringBuilder方法

    2024-07-10 01:18:04       46 阅读
  5. C#中方法

    2024-07-10 01:18:04       21 阅读
  6. C#String.Format 方法

    2024-07-10 01:18:04       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 01:18:04       51 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 01:18:04       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 01:18:04       44 阅读
  4. Python语言-面向对象

    2024-07-10 01:18:04       55 阅读

热门阅读

  1. Spring容器加载Bean和JVM加载类

    2024-07-10 01:18:04       20 阅读
  2. word 使用手册

    2024-07-10 01:18:04       27 阅读
  3. winform4

    winform4

    2024-07-10 01:18:04      22 阅读
  4. PlugLink:小微企业自动化运营的魔法盒子

    2024-07-10 01:18:04       26 阅读
  5. Centos7删除MariaDB

    2024-07-10 01:18:04       21 阅读
  6. Docker多阶段构建Node.js应用程序

    2024-07-10 01:18:04       22 阅读
  7. 深入Django(八)

    2024-07-10 01:18:04       22 阅读
  8. 工具指南 - jenkins

    2024-07-10 01:18:04       19 阅读
  9. linux高级编程(OSI/UDP(用户数据报))

    2024-07-10 01:18:04       19 阅读
  10. 【7.29-1800】

    2024-07-10 01:18:04       21 阅读
  11. 源码编译构建LAMP

    2024-07-10 01:18:04       14 阅读
  12. 网络安全筑基篇——反序列化漏洞

    2024-07-10 01:18:04       18 阅读