在 Linux 下使用 C++ 进行多线程编程,你可以使用 C++11 标准库中的 <thread>
头文件
在你的 C++ 源代码文件中,首先需要包含 <thread>
头文件。
#include <iostream>
#include <thread>
创建一个你希望在线程中执行的函数。这个函数接收一些参数(如果有的话),并在线程中执行任务。
void print_hello(int n) {
for (int i = 0; i < n; ++i) {
std::cout << "Hello from thread " << std::this_thread::get_id() << std::endl;
}
}
使用 std::thread
类创建一个线程对象,并将要在线程中执行的函数作为构造函数的参数传递。你还可以将参数传递给线程函数。
int main() {
// 创建一个线程对象,执行 print_hello 函数
std::thread t1(print_hello, 5);
// 等待线程完成
t1.join();
return 0;
}
调用线程对象的 join()
方法来启动线程。注意,join()
方法会阻塞主线程,直到被调用的线程完成执行。如果你希望主线程立即继续执行,可以使用 detach()
方法。但是,使用 detach()
后,你将无法再控制或获取已分离线程的状态。
int main() {
// 创建一个线程对象,执行 print_hello 函数
std::thread t1(print_hello, 5);
// 等待线程完成
t1.join();
return 0;
}
这就是在 Linux 下使用 C++ 进行多线程编程的基本方法。你可以根据需要创建更多的线程,并在它们之间共享数据或使用同步机制(如互斥锁、条件变量等)来协调它们的执行。