c++ 实现多线程任务处理
时间: 2023-08-21 19:06:06 浏览: 121
C++课件_第16章_多任务与多线程编程.ppt
在 C++ 中实现多线程任务处理可以使用标准库中的 `std::thread` 类来创建并管理线程。以下是一个简单的示例代码,展示了如何使用多线程处理任务:
```cpp
#include <iostream>
#include <thread>
#include <vector>
// 任务函数
void task(int id) {
std::cout << "Task " << id << " started" << std::endl;
// 执行任务逻辑
std::cout << "Task " << id << " completed" << std::endl;
}
int main() {
const int numTasks = 5;
std::vector<std::thread> threads;
// 创建多个线程并分配任务
for (int i = 0; i < numTasks; ++i) {
threads.emplace_back(task, i);
}
// 等待所有线程执行完毕
for (auto& thread : threads) {
thread.join();
}
return 0;
}
```
在上面的示例中,我们定义了一个 `task` 函数,它表示需要在每个线程中执行的任务逻辑。然后,我们使用 `std::vector<std::thread>` 来保存线程对象,并通过 `emplace_back` 函数将每个任务分配给一个新的线程。
最后,我们使用 `join` 函数来等待所有线程执行完毕。这样可以确保主线程在所有任务完成后结束。
请注意,多线程编程涉及到许多并发问题,如数据竞争和同步。在实际开发中,需要仔细考虑这些问题,并使用互斥量、条件变量等同步机制来确保线程安全性。
阅读全文