legongju.com
我们一直在努力
2025-01-15 13:54 | 星期三

linux c++多线程怎么写

在 Linux 系统下,使用 C++ 编写多线程程序需要用到 C++11 标准中的

#include 
#include 
#include 

// 函数示例:打印从 0 到 n-1 的整数
void print_numbers(int start, int end) {
    for (int i = start; i < end; ++i) {
        std::cout << "Thread ID: " << std::this_thread::get_id() << ", Number: "<< i << std::endl;
    }
}

int main() {
    const int num_threads = 4;
    const int range = 10;

    // 创建线程向量
    std::vector threads;

    // 计算每个线程需要处理的数字范围
    int range_per_thread = range / num_threads;

    // 为每个线程分配任务
    for (int i = 0; i < num_threads; ++i) {
        int start = i * range_per_thread;
        int end = (i == num_threads - 1) ? range : (i + 1) * range_per_thread;
        threads.push_back(std::thread(print_numbers, start, end));
    }

    // 等待所有线程完成
    for (auto& t : threads) {
        t.join();
    }

    std::cout << "All threads finished." << std::endl;

    return 0;
}

这个示例中,我们创建了一个名为 print_numbers 的函数,该函数接受两个参数:要打印的数字范围的起始值和结束值。在 main 函数中,我们创建了 4 个线程,并为每个线程分配了一个任务,使其打印从 0 到 9 的整数。最后,我们使用 join() 函数等待所有线程完成。

注意:在编译时,需要使用 -std=c++11 或更高版本的编译选项来启用 C++11 支持。例如,使用 g++ 编译器时,可以使用以下命令:

g++ -std=c++11 -pthread main.cpp -o main

这将生成一个名为 main 的可执行文件,可以运行它以查看多线程程序的效果。

未经允许不得转载 » 本文链接:https://www.legongju.com/article/47134.html

相关推荐

  • Linux recvmsg在高并发场景下的应用

    Linux recvmsg在高并发场景下的应用

    在高并发场景下,Linux的recvmsg函数通常用于接收多个数据报。recvmsg函数可以接收多个数据报,并将它们存储在一个或多个缓冲区中。这样可以减少系统调用的次数,...

  • 如何处理Linux recvmsg接收到的数据包

    如何处理Linux recvmsg接收到的数据包

    处理Linux recvmsg接收到的数据包的一般步骤如下: 创建一个用于存放接收数据包的缓冲区。
    使用recvmsg函数接收数据包,并将数据包存放在缓冲区中。
    解...

  • recvmsg与recv在Linux中的区别是什么

    recvmsg与recv在Linux中的区别是什么

    recvmsg和recv都是用于接收数据的系统调用函数,但它们在使用上有一些区别: recvmsg可以接收来自多个socket的数据,并且可以获取更多关于消息的信息,比如消息的...

  • 如何在Linux中使用recvmsg接收数据

    如何在Linux中使用recvmsg接收数据

    在Linux中使用recvmsg接收数据时,你需要创建一个socket,并使用recvmsg函数来接收数据。以下是一个简单的示例代码:
    #include #include #include #include...

  • linux和java怎样配合

    linux和java怎样配合

    Linux和Java的配合使用主要体现在Java应用程序的运行环境和开发环境配置上。以下是一些基本的步骤和注意事项:
    Java开发环境配置 安装Java开发工具包(JDK) ...

  • java是否适合linux

    java是否适合linux

    是的,Java非常适合在Linux操作系统上运行。Linux系统的稳定性和安全性使其成为服务器端和开发领域的优选,而Java作为一种跨平台的编程语言,能够很好地适应Linu...

  • linux系统能用java吗

    linux系统能用java吗

    是的,Linux系统可以使用Java。实际上,Linux系统上安装和运行Java是非常常见的,因为Java的跨平台特性使其在各种操作系统上都能很好地运行。以下是在Linux系统上...

  • linux上怎样安装java

    linux上怎样安装java

    在 Linux 上安装 Java,有多种方法 使用包管理器安装 Java:
    对于基于 Debian 的发行版(如 Ubuntu),请使用以下命令:
    sudo apt update
    sudo a...