c++创建多线程的方法有哪些

c++
660
2023/7/29 13:26:28
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在C++中,创建多线程的方法有以下几种:

  1. 使用std::thread库:C++11引入了std::thread库,它提供了一种简单的方法来创建和管理线程。可以使用std::thread类创建一个新的线程,例如:
#include <thread>
void myThreadFunction() {
// 线程执行的代码
}
int main() {
std::thread myThread(myThreadFunction);
// 执行其他任务
myThread.join(); // 等待线程结束
return 0;
}
  1. 使用函数指针或函数对象:可以将一个函数指针或函数对象传递给std::thread的构造函数,例如:
#include <iostream>
#include <thread>
void myThreadFunction(int arg) {
std::cout << "Thread running with arg: " << arg << std::endl;
}
int main() {
int arg = 42;
std::thread myThread(myThreadFunction, arg);
// 执行其他任务
myThread.join(); // 等待线程结束
return 0;
}
  1. 使用lambda表达式:可以使用lambda表达式来创建一个匿名的线程函数,例如:
#include <iostream>
#include <thread>
int main() {
int arg = 42;
std::thread myThread([&arg]() {
std::cout << "Thread running with arg: " << arg << std::endl;
});
// 执行其他任务
myThread.join(); // 等待线程结束
return 0;
}
  1. 使用std::async库:C++11还引入了std::async库,它可以方便地异步执行函数,并返回一个std::future对象,用于获取函数的返回值。std::async可以自动选择线程或任务池来执行函数,例如:
#include <iostream>
#include <future>
int myThreadFunction() {
// 线程执行的代码
return 42;
}
int main() {
std::future<int> result = std::async(myThreadFunction);
// 执行其他任务
int returnValue = result.get(); // 等待线程结束并获取返回值
std::cout << "Return value: " << returnValue << std::endl;
return 0;
}

这些方法都可以用来创建多线程并执行相应的操作。选择哪种方法取决于具体的需求和代码结构。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: c++纯虚函数的含义是什么