linux

C++如何在Linux下进行多线程编程

小樊
38
2025-06-05 15:00:58
栏目: 编程语言

在Linux下进行C++多线程编程,主要使用C++11标准库中的<thread>头文件。以下是一个简单的示例,展示了如何在Linux下使用C++11进行多线程编程:

#include <iostream>
#include <thread>

// 定义一个函数,用于在线程中执行
void print_hello() {
    std::cout << "Hello from thread!" << std::endl;
}

int main() {
    // 创建一个线程对象,将print_hello函数作为参数传递给它
    std::thread t(print_hello);

    // 等待线程完成
    t.join();

    std::cout << "Hello from main thread!" << std::endl;

    return 0;
}

编译这个程序,需要使用-std=c++11选项来启用C++11支持:

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

然后运行生成的可执行文件:

./main

这个示例中,我们创建了一个名为t的线程对象,并将print_hello函数作为参数传递给它。t.join()会等待线程t完成执行。程序的输出可能如下:

Hello from thread!
Hello from main thread!

注意线程的执行顺序可能会有所不同,因为它们是并发执行的。

除了<thread>头文件外,C++11还提供了其他与多线程编程相关的头文件,如<mutex>(用于互斥锁)、<condition_variable>(用于条件变量)等。这些工具可以帮助你更好地控制线程之间的同步和通信。

0
看了该问题的人还看了