在Linux环境下使用C++进行多线程编程,你可以使用C++11标准中的 <thread>
库。下面是一个简单的示例,展示了如何创建多个线程并等待它们完成:
#include <iostream>
#include <thread>
#include <vector>
// 线程函数
void print_hello(int id) {
std::cout << "Hello from thread " << id << std::endl;
}
int main() {
// 创建一个线程向量
std::vector<std::thread> threads;
// 为每个数字创建一个新线程
for (int i = 0; i < 10; ++i) {
threads.emplace_back(print_hello, i);
}
// 等待所有线程完成
for (auto& t : threads) {
t.join();
}
return 0;
}
在这个示例中,我们首先包含了 <thread>
头文件。然后定义了一个名为 print_hello
的线程函数,该函数接受一个整数参数并打印一条消息。在 main
函数中,我们创建了一个 std::vector<std::thread>
对象来存储线程。接下来,我们使用一个循环创建了10个线程,并将它们添加到向量中。最后,我们遍历向量并使用 join()
函数等待所有线程完成。
这只是一个简单的示例,你可以根据自己的需求修改线程函数和线程数量。在实际应用中,你可能还需要考虑线程同步和数据竞争等问题。为了解决这些问题,你可以使用互斥锁(std::mutex
)、条件变量(std::condition_variable
)等同步原语。