用類做爲可調用對象建立線程
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;
}