大挪耗

c++this_thread的全局函数

#include "iostream"
#include "thread"
#include "windows.h"

using namespace::std;

void func(int bh,const string & str)
{cout<<"子线程:"<<this_thread::get_id()<<endl;
    for (int ii = 0; ii < 5; ++ii) {
        cout<<"第"<<ii<<"次表白:亲爱的"<<bh<<"号。"<<str <<endl;
        //Sleep(1000);//休眠一秒。
        this_thread::sleep_for(chrono::seconds(1));//休眠一秒

    }
}


int main()
{

    thread t1(func,1,"我是一傻傻鸟。");
    thread t2(func,2,"我是一傻傻鸟。");


    //子线程结束以后,系统自动回收,但主线程不可以提前退出。
//    t1.detach();
//    t2.detach();


    cout<<"任务开始。\n";
    for (int ii=0;ii<6;ii++) {
        cout<<"执行任务中.......\n";
        Sleep(1000);//假设执行任务的需要的时间。
    }
    cout<<"任务完成。\n";

    cout<<"主线程:"<<this_thread::get_id()<<endl;
    cout<<"线程1:"<<t1.get_id()<<endl;
    cout<<"线程2:"<<t2.get_id()<<endl;
    t1.swap(t2);
    cout<<"线程1:"<<t1.get_id()<<endl;
    cout<<"线程2:"<<t2.get_id()<<endl;
    thread t3=move(t2);//线程没有拷贝构造函数
    t1.join();//回收线程t1的资源。
    t3.join();//回收线程t2的资源。
    return 0;


}

任务开始。
执行任务中…….
子线程:2
第0子线程:次表白:亲爱的13号。我是一傻傻鸟。

第0次表白:亲爱的2号。我是一傻傻鸟。
第执行任务中…….
第11次表白:亲爱的次表白:亲爱的12号。号。我是一傻傻鸟。我是一傻傻鸟。

第2次表白:亲爱的1号。我是一傻傻鸟。
第2执行任务中…….
次表白:亲爱的2号。我是一傻傻鸟。
第第3执行任务中…….
3次表白:亲爱的2号。我是一傻傻鸟。
次表白:亲爱的1号。我是一傻傻鸟。
第第4次表白:亲爱的2号。我是一傻傻鸟。
执行任务中…….
4次表白:亲爱的1号。我是一傻傻鸟。
执行任务中…….
任务完成。
主线程:1
线程1:2
线程2:3
线程1:3
线程2:2


已发布

分类

可以收藏大挪耗一下。下载麻烦点城通网盘,站长保证下载速度,不会限速的,放心点就是了;分卷,安卓下载为txt:程序下载为url,不会下载参考不会下载。如果你想让本站活的久一点,请直接捐助

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注