c++ std::thread用法
时间: 2024-05-08 16:13:19 浏览: 94
C++中的std::thread是用于创建和管理线程的类。下面是std::thread的用法示例[^2]:
```cpp
#include <iostream>
#include <thread>
// 线程函数
void myFunc(int n) {
std::cout << "myFunc n = " << n << std::endl;
}
int main() {
int num = 10;
// 创建线程并传递参数
std::thread t(myFunc, num);
// 等待线程执行完毕
t.join();
return 0;
}
```
在上面的示例中,我们首先包含了<iostream>和<thread>头文件。然后定义了一个名为myFunc的函数,该函数接受一个整数参数n,并在控制台输出该参数的值。在主函数中,我们创建了一个std::thread对象t,并将myFunc函数和num作为参数传递给它。然后我们使用t.join()等待线程执行完毕。
相关问题
c++ std::thread
std::thread是C++标准库中的一个类,用于创建和管理线程。通过std::thread,我们可以在不同的线程中执行并发的任务。std::thread可以接受一个可调用对象(函数、函数指针、lambda表达式等)作为参数,并在新的线程中执行该对象。引用提到了一个std::packaged_task的用法,它可以用来将一个可调用对象封装成一个可以异步执行的任务,并返回一个std::future对象,可以在需要的时候获取任务的结果。而引用展示了如何传递参数给线程函数,可以使用std::ref来传递引用类型的参数。最后,引用介绍了在函数外部创建和管理线程的方式,可以将std::thread对象的所有权转移给其他函数或对象。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [C++std::thread](https://blog.csdn.net/OneOnce/article/details/125626769)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [C/C++编程:std::thread 详解](https://blog.csdn.net/zhizhengguan/article/details/107352959)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
C++ std::thread函数
C++标准库中的std::thread函数是用于创建和管理线程的类。它提供了一种简单的方法来创建新线程并控制它们的执行。std::thread类的构造函数可以接受一个函数和一些参数,这个函数将在新线程中执行。std::thread类还提供了一些其他的成员函数,如get_id()用于获取线程ID,joinable()用于检查线程是否可被join,detach()用于将线程分离,join()用于等待线程执行完毕并回收资源,swap()用于交换两个线程的状态,native_handle()用于返回native handle等。此外,std::thread类还有一些注意事项需要注意,如线程的可联结性、线程对象析构等。如果需要实现一个简单的线程池示例或封装一个功能全面的std::thread类,也可以使用std::thread函数。
阅读全文