用类作为可调用对象创建线程
class A
{
public:
A() { cout << "构造函数" << endl; }
A(const A& a) { cout << "拷贝构造函数" << endl; }
void operator()() { cout << "此时在子线程中" << endl; }
~A() { cout << "析构函数" << endl; }
private:
};
int main(int argc, char** argv)
{
A a;
thread myjob(a);
myjob.join();
cout << "此时在主线程中" << endl;
return 0;
}
用lambda作为可调用对象创建线程
int main(int argc, char** argv)
{
auto f = [] {cout << "lambda" << endl; };
thread myjob(f);
//thread myjob([] {cout << "lambda" << endl; });这样的使用方法也可以通过编译
myjob.join();
cout << "此时在主线程中" << endl;
return 0;
}
原文地址:https://www.cnblogs.com/Anthony-ling/p/11441185.html
时间: 2024-08-29 17:34:22