std thread 的 用法是什么
时间: 2023-04-08 10:04:19 浏览: 100
std thread 是 C++11 标准库中的一个类,用于创建和管理线程。它可以接受一个函数作为参数,将这个函数作为线程的入口点,并在新线程中执行该函数。使用 std thread 可以实现多线程编程,提高程序的并发性和性能。
相关问题
std thread 用法
std::thread 是 C++11 中提供的线程库,用于创建和管理线程。以下是 std::thread 的基本用法示例:
```cpp
#include <iostream>
#include <thread>
// 线程函数
void threadFunction(int n) {
for (int i = 0; i < n; ++i) {
std::cout << "Thread function executing" << std::endl;
}
}
int main() {
int numIterations = 5;
// 创建一个新线程并指定线程函数和参数
std::thread t(threadFunction, numIterations);
// 主线程继续执行其他操作
for (int i = 0; i < numIterations; ++i) {
std::cout << "Main thread executing" << std::endl;
}
// 等待新线程执行完毕
t.join();
return 0;
}
```
在上述示例中,我们创建了一个新的线程 `t` 并指定了线程函数 `threadFunction` 和参数 `numIterations`。主线程和新线程分别输出不同的消息,并且通过 `t.join()` 等待新线程执行完毕。
需要注意的是,`std::thread` 对象的销毁会导致程序终止,所以在创建线程时需要确保 `std::thread` 对象的生命周期足够长,或者使用 `detach()` 方法将线程与 `std::thread` 对象分离。
std thread 的 用法举例
std thread 是 C++11 标准库中的一个线程库,可以用于创建和管理线程。下面是一个简单的示例:
```cpp
#include <iostream>
#include <thread>
void printHello() {
std::cout << "Hello from thread!" << std::endl;
}
int main() {
// 创建一个新线程,并执行 printHello 函数
std::thread t(printHello);
// 等待线程执行完毕
t.join();
std::cout << "Hello from main thread!" << std::endl;
return 0;
}
```
在上面的示例中,我们创建了一个新线程,并让它执行 printHello 函数。然后,我们等待线程执行完毕,再输出一条消息。注意,我们必须调用 t.join() 来等待线程执行完毕,否则程序会立即退出,而新线程可能还没有执行完毕。
阅读全文