std::thread创建线程
时间: 2023-09-03 16:08:01 浏览: 109
通过Thread建立线程
使用std::thread可以创建线程。可以通过以下几种方式来创建线程:
1. 使用普通函数创建线程:通过将函数名作为参数传递给std::thread的构造函数来创建线程。例如,可以定义一个普通函数functionToThread,并将其作为参数传递给std::thread的构造函数。
2. 使用lambda表达式创建线程:可以使用lambda表达式来定义线程的执行代码,并将其作为参数传递给std::thread的构造函数。
注意事项:
- std::thread对象只具有移动属性,不具备拷贝属性。
- 每个线程都具有唯一的id,可以使用std::this_thread::get_id()函数来获取当前线程的id,也可以通过std::thread对象的成员函数get_id()来获取。
示例代码如下:
#include <iostream>
#include <thread>
using namespace std;
void functionToThread() {
cout << "线程启动......" << endl;
cout << "线程结束......" << endl;
}
int main() {
// 使用普通函数创建线程
thread myThread(functionToThread);
// 使用lambda表达式创建线程
auto lambdaThread = [](){
cout << "线程启动......" << endl;
cout << "线程结束......" << endl;
};
thread myThread2(lambdaThread);
// 等待线程执行完毕
myThread.join();
myThread2.join();
return 0;
}
<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [使用 std::thread 创建线程](https://blog.csdn.net/lizhichao410/article/details/123547768)[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^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文