当前位置: 首页 > news >正文

怎么网站是谁做的附近的成人电脑培训班

怎么网站是谁做的,附近的成人电脑培训班,嘉善住房和城乡建设网站,软件自学网官方网站thread是C11版本中出现的线程对象,可以让程序员非常方便地创建线程。 非空的thread对象创建以后,线程就会自动运行起来。简单地理解,一个线程对象中会传入一个函数指针,之后编译器会构造一个栈,将这个函数指针压栈。函…

thread是C++11版本中出现的线程对象,可以让程序员非常方便地创建线程。
非空的thread对象创建以后,线程就会自动运行起来。简单地理解,一个线程对象中会传入一个函数指针,之后编译器会构造一个栈,将这个函数指针压栈。函数就可以视为任务,从而实现了任务并发。

一、如何创建线程对象:

(1)空thread对象:

thread t;

如果后面没有对其赋值的话,这就是一个毫无意义的操作。

(2)使用全局函数创建thread对象:

void f(){cout<<"I love coding"<<endl;
}
int main()
{thread t(f);t.join();
}

全局函数也可以带参数

void f(int a){cout<<"I love coding"<<endl;cout<<a;
}
int main()
{thread t(f,1);t.join();
}

(3)使用静态成员函数创建thread对象:

class A{
public:static void f();
};void A::f(){cout<<"I love coding"<<endl;
}
int main()
{thread t(A::f);t.join();
}

因为静态函数是类公有的,所以只需要标注类名即可。

(4)使用非静态成员函数创建thread对象:

class A{
public:void f();
};void A::f(){cout<<"I love coding"<<endl;
}
int main()
{A a;thread t(&A::f,&a);t.join();
}

首先需要将对象构造出来,然后将对象的this指针作为入参。

二、线程持有的资源

网上有各种各样的多线程教程,老生常谈的一句话是“线程持有的资源如何如何”。那么thread到底持有的是什么资源?
本人才疏学浅,操作系统学的实在是不咋地,深入理解不太行。但是这个资源,可以简单看作一个结构体:

_Thrd_t _Thr; //其实_Thrd_t 是类型的别名typedef _Thrd_imp_t _Thrd_t;    // 而_Thrd_imp_t是一个结构体typedef struct {	/* 线程 标识符 */void *_Hnd;	    /* 操作系统句柄 */unsigned int _Id;    // 线程id
} _Thrd_imp_t;

thread持有的资源,可以看作是一个线程id+一个操作系统句柄。后面会说明,这两个资源,每个thread对象都是不一样的。

所以,thread对象,只能移动构造,不能拷贝构造。只能移动赋值,不能拷贝赋值。

void f(){
}
int main()
{thread t1(f);cout<<"t1 id : "<<t1.get_id()<<endl<<endl;thread t2(move(t1));cout<<"t1 id : "<<t1.get_id()<<endl;cout<<"t2 id : "<<t2.get_id()<<endl;t2.join();
}

输出:

t1 id : 2t1 id : thread::id of a non-executing thread
t2 id : 2

可见,移动构造之后,t1持有的资源全部给了t2.
假如有一种场景,f()正在执行,发生了资源移动,有问题吗?
没有任何问题。因为线程实际上是操作系统持有的资源,当thread对象创建好以后,线程怎么跑起来和thread对象基本没关系了,thread对象里面不过是保存了一个句柄,句柄就是指向操作系统内核的指针。资源移动无非是将指针转移给了其他的thread对象。

但是,thread保留了这个句柄,说明对象就有了这个线程的所有权,可以阻塞它、分离它,或者进行其他操作。

http://www.shuangfujiaoyu.com/news/28288.html

相关文章:

  • 富顺网站建设营销宣传策划方案
  • 网站建设课程心得体会企业邮箱怎么注册
  • 上海网站seo牛巨微网络营销策划是什么
  • 网站营销优化今日头条最新消息
  • 网站制作价格 上海2345浏览器主页网址
  • 东莞app培训网站建设简述网络营销的主要方法
  • 网站建设与维护的案例专门做网站的公司
  • 北京市政建设集团有限公司郑州seo技术服务顾问
  • 聊城网站建设培训班推广方案万能模板
  • java只能做网站开发吗产品运营推广方案
  • 高端品牌网站制作搜索引擎营销成功的案例
  • 做公司网站需要注意哪些seo算法优化
  • 做网站找哪家公司代写文案的软件
  • 网站建设开发计划模板自己做网站
  • 义乌兼职网站建设免费的seo优化
  • 做二手交易网站如何盈利百度做免费推广的步骤
  • 什么是域名空间昆明seocn整站优化
  • wordpress文章关键词在哪里关键词优化推广策略
  • 宿迁市建设局网站网络营销策划书的结构
  • 通州网站开发公司朋友圈网络营销
  • 短链接生成站长工具百度网盘首页
  • 大连做网站仟亿科技宁波网站推广公司有哪些
  • 做阿里巴巴网站找谁深圳百度seo公司
  • 晋城做推广的网站排行抖音广告
  • 想找私人做网站网络营销推广策略
  • 东营优化网站个人网站制作
  • 网站qq显示未启用网站发布与推广方式
  • 专门做艺术字的网站手机优化软件哪个好
  • 上海最好的网站设计公司企拓客软件怎么样
  • 上海网站络公司北京优化网站方法