c++ 中多线程的使用

如果你的其他逻辑必须在线程 t1t2 之后执行,但你又希望这些线程能够同时运行,你可以在主线程中使用 std::thread::detach 将线程分离,让它们在后台运行。这样,主线程不会等待这些线程的完成,而可以继续执行其他逻辑。

这里是一个示例:

#include <iostream>
#include <thread>
#include <ctime>
#include <chrono>
#include <windows.h>

void test_thread_1()
{
   
    while (true) {
   
        std::cout << "test1" << std::endl;
        std::this_thread::sleep_for(std::chrono::seconds(5));
    }
}

void test_thread_2()
{
   
    while (true) {
   
        std::cout << "test2" << std::endl;
        std::this_thread::sleep_for(std::chrono::seconds(3));
    }
}

int main()
{
   
    std::cout << "Hello World!\n";
    std::thread t1(test_thread_1);
    std::thread t2(test_thread_2);

    // 分离线程,让它们在后台运行
    t1.detach();
    t2.detach();

    // 执行其他逻辑,这里不会等待t1和t2的完成

    // 等待用户输入或其他操作,确保程序不会立即退出
    std::cin.get();

    return 0;
}

这样,t1t2 将在后台运行,主线程可以继续执行其他逻辑。请注意,一旦线程被分离,你就不能再使用 join 来等待它们的完成。但要注意,线程分离后,程序退出时这些线程可能仍在运行。确保在程序退出前适当地等待或结束这些线程。

相关推荐

  1. c++ 线使用

    2024-01-06 08:58:02       56 阅读
  2. C# 线使用经验

    2024-01-06 08:58:02       37 阅读
  3. C#线

    2024-01-06 08:58:02       53 阅读
  4. python线使用

    2024-01-06 08:58:02       51 阅读
  5. 【2】c++线技术之线标准库使用

    2024-01-06 08:58:02       30 阅读
  6. 线使用

    2024-01-06 08:58:02       58 阅读
  7. C++线编程锁详解

    2024-01-06 08:58:02       24 阅读
  8. 【QT】qt线使用

    2024-01-06 08:58:02       64 阅读

最近更新

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

    2024-01-06 08:58:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-06 08:58:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-06 08:58:02       82 阅读
  4. Python语言-面向对象

    2024-01-06 08:58:02       91 阅读

热门阅读

  1. K8S学习指南(64)-K8S源代码走读之Kubelet

    2024-01-06 08:58:02       54 阅读
  2. 百度测试开发实习生 一面

    2024-01-06 08:58:02       60 阅读
  3. LeetCode 30. 串联所有单词的子串

    2024-01-06 08:58:02       54 阅读
  4. 代码设计模式

    2024-01-06 08:58:02       60 阅读
  5. 设计模式之单例模式

    2024-01-06 08:58:02       62 阅读
  6. Hive 源码

    2024-01-06 08:58:02       53 阅读
  7. 搭建网站环境(IIS+php+mysql)

    2024-01-06 08:58:02       52 阅读
  8. Websocket实时更新商品信息

    2024-01-06 08:58:02       49 阅读
  9. Spring Boot和Spring主要区别:

    2024-01-06 08:58:02       59 阅读
  10. k8s-二进制部署

    2024-01-06 08:58:02       51 阅读
  11. Ubuntu20.04安装suiteCRM

    2024-01-06 08:58:02       55 阅读