c++ 线程先声明后初始化
时间: 2024-11-29 12:38:38 浏览: 8
在 C++ 中,线程是通过 `<thread>` 库来进行管理的。如果你想要在程序中声明一个线程但是暂时不立即启动它,可以先声明线程对象,然后在适当的时候使用 `start()` 函数来启动线程。这是一个基本的例子:
```cpp
#include <iostream>
#include <thread>
void thread_function() {
std::cout << "Thread function is running...\n";
}
int main() {
// 声明一个线程对象
std::thread my_thread(thread_function);
// 主线程继续执行其他操作...
for (int i = 0; i < 5; ++i) {
std::cout << "Main thread: " << i << "\n";
// 当需要时,可以调用 start() 来启动线程
if (i == 3) {
my_thread.start();
}
}
return 0;
}
```
在这个例子中,`my_thread` 是一个未初始化的线程对象,直到 `main` 函数到了第四个循环迭代,我们才调用了它的 `start()` 方法。在此之前,主线程会持续运行,而线程处于挂起状态。
阅读全文