展开全部
包含头文件 #include
1、std::thread 的使用非常放便和强大,该类几乎可以把任何函数作为线程主函数。
2、用法:62616964757a686964616fe4b893e5b19e31333337616634
首先包含头文件 #include
定义线程主函数: 根据不同的需要,线程的主函数可以是普通函数、函数对象、lambda表达式或者类成员函数。
建立std::thread对象,并把线程要运行的函数(线程主函数)以及相应的函数参数通过构造函数传递给该对象, 构造函数通常会海纳百川。
例程:#include
#include
class ThreadMain {
public:
void operator()() {
run();
}
void run() {
std::cout <
}
};
void generalFunc(int data) {
std::cout <
}
int main() {
ThreadMain tm;
std::thread t1(generalFunc, 1); /*传递普通函数指针和参数0给thread对象t1*/
std::thread t2(&ThreadMain::run, &tm); /*将成员函数传递给thread对象t2, 并且传递调用该函数的对象的指针&tm*/
std::thread t3(tm); /*传递一个函数对象给t3*/
std::thread t4([]() { std::cout <
/* 调用join函数等待线程终止,并回收线程所占资源*/
t1.join();
t2.join();
t3.join();
t4.join();
}