c++ 创建线程的方法
时间: 2024-04-09 10:32:41 浏览: 73
在C++中,你可以使用以下几种方法来创建线程:
1. 使用 `<thread>` 头文件中的 `std::thread` 类来创建线程。通过创建 `std::thread` 对象并传递一个可调用的函数(可以是全局函数、静态成员函数或lambda表达式)作为参数,即可创建一个新的线程。例如:
```cpp
#include <iostream>
#include <thread>
void myFunction()
{
std::cout << "This is a thread." << std::endl;
}
int main()
{
std::thread t(myFunction); // 创建一个新线程并执行 myFunction 函数
t.join(); // 等待线程执行完毕
return 0;
}
```
2. 使用 C++11 引入的 `std::async` 函数来创建异步任务。通过调用 `std::async` 函数并传递一个可调用的函数作为参数,它会返回一个 `std::future` 对象,可以用来获取函数的返回值或等待函数执行完毕。例如:
```cpp
#include <iostream>
#include <future>
int myFunction()
{
std::cout << "This is an asynchronous task." << std::endl;
return 42;
}
int main()
{
std::future<int> fut = std::async(myFunction); // 创建一个异步任务并执行 myFunction 函数
int result = fut.get(); // 获取函数的返回值
std::cout << "Result: " << result << std::endl;
return 0;
}
```
这些方法都是C++标准库中提供的创建线程的方式。选择哪种方法取决于你的需求和代码结构。请记住在使用线程时要小心处理线程间的同步和共享资源的访问,以避免潜在的竞态条件和数据冲突问题。
阅读全文