一个进程就是一个步伐,一个步伐里不止一个功能,每个功能的实现就可以交给一个线程去完成。一个进程就像是一个工程,这个工程里,有设计,有监理,有施工,就相当于三个线程,各干各的又相互配合。
https://cplusplus.com/reference/thread/thread/thread/
是C++的官方参考,个人觉得比力权威,比颠末一些人去相识更好。每个人的头脑方式不一样,直接看原始文档是最好的,何必吃别人嚼过的饭呢。
下面是我的心得,也算个参考吧。
一、创建一个线程大致有两种方法,一是先定义一个空线程,然后再实例化,二是直接实例化一个线程,直接干活。我个人倾向第二种,感觉第一种没什么意义。
二、对于join的理解。我的理解是:一个线程就是一个人,给这个人派任务后,有两种状态,一个是需要他回复,另一种是不需要。需要回复的,就用join,不需要回复的,就用detach。还拿设计,监理,施工,三人举例。施工前需要设计好才气开始施工,设计线程需要join,施工和监理是同时进行的,不能等施工完了,监理才查抄,所以施工尤其不能join,只能detach,监理就可以马上开始了,监理作为最后一个工序可以join,也可以detach
三、joinable,就是表示这个线程的状态,一个线程,既有任务,又需要回复,就是joinable()== true,其余状态都是joinable()== false
四、当joinable()== true时,才对线程进行join或detach操纵。否则不要进行这两种操纵。即if(th.joinable()){th.join();或th.detach();}
五、std:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |