c++开启线程传递参数
时间: 2023-08-04 07:28:05 浏览: 48
在C++中,你可以使用`std::thread`库来开启线程并传递参数,具体步骤如下:
1. 定义一个函数来作为线程的入口点,这个函数接受需要传递的参数。
```cpp
void thread_function(int arg1, float arg2, const std::string& arg3) {
// 在这里执行线程的逻辑
}
```
2. 创建一个`std::thread`对象,并将函数和参数传递给它。
```cpp
std::thread my_thread(thread_function, 42, 3.14, "hello");
```
其中,`thread_function`是要执行的函数,`42`、`3.14`和`"hello"`是需要传递的参数。
3. 等待线程执行完毕。
```cpp
my_thread.join();
```
`join()`方法会阻塞当前线程,直到`my_thread`线程执行完毕。
完整的示例代码如下:
```cpp
#include <iostream>
#include <thread>
void thread_function(int arg1, float arg2, const std::string& arg3) {
std::cout << "arg1 = " << arg1 << std::endl;
std::cout << "arg2 = " << arg2 << std::endl;
std::cout << "arg3 = " << arg3 << std::endl;
}
int main() {
std::thread my_thread(thread_function, 42, 3.14, "hello");
my_thread.join();
return 0;
}
```
输出结果为:
```
arg1 = 42
arg2 = 3.14
arg3 = hello
```