码迷,mamicode.com
首页 > 编程语言 > 详细

课时3 线程启动、结束,创建线程多法,join、detach

时间:2019-09-01 01:44:51      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:方法   void   启动   析构   拷贝   创建   ret   通过   析构函数   

用类作为可调用对象创建线程

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;
}

课时3 线程启动、结束,创建线程多法,join、detach

标签:方法   void   启动   析构   拷贝   创建   ret   通过   析构函数   

原文地址:https://www.cnblogs.com/Anthony-ling/p/11441185.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!