C++一个创建多个线程
时间: 2024-10-22 13:19:13 浏览: 30
在C++中,可以使用标准库中的线程库来创建多个线程。下面是一个简单的示例代码,展示了如何创建两个线程并等待它们完成:
```cpp
#include <iostream>
#include <thread>
#include <chrono>
// 线程函数
void threadFunction(int id) {
std::cout << "线程 " << id << " 开始执行" << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(2)); // 模拟耗时操作
std::cout << "线程 " << id << " 执行完毕" << std::endl;
}
int main() {
// 创建两个线程
std::thread t1(threadFunction, 1);
std::thread t2(threadFunction, 2);
// 等待两个线程完成
t1.join();
t2.join();
std::cout << "所有线程执行完毕" << std::endl;
return 0;
}
```
在上面的代码中,我们定义了一个名为`threadFunction`的函数,它接受一个整数参数`id`,用于标识线程的编号。该函数用于模拟一个耗时的操作,例如休眠一段时间。在主函数中,我们创建了两个线程`t1`和`t2`,并分别将它们与各自的线程函数关联起来。最后,我们使用`join()`函数等待两个线程完成执行。
当程序运行时,它会输出以下内容:
```vbnet
线程 1 开始执行
线程 2 开始执行
线程 1 执行完毕
线程 2 执行完毕
所有线程执行完毕
```
这表明两个线程都成功完成了它们的任务。请注意,在实际应用中,您可能需要更复杂的线程管理逻辑,例如使用互斥锁来保护共享资源,或者使用条件变量来协调多个线程之间的通信。此外,还需要考虑线程同步和死锁等问题。
阅读全文