クラス3スレッドの開始、終了、切り離し、参加し、マルチスレッドのメソッドを作成

クラスで呼び出し可能オブジェクトとしてスレッドを作成

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

呼び出し可能オブジェクトとしてラムダとのスレッドを作成します。

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

おすすめ

転載: www.cnblogs.com/Anthony-ling/p/11441185.html