linux(线程控制)

news/2025/2/13 2:32:44/

目录:

           1.线程创建

           2.线程等待

           3.线程终止

           4.线程分离

           5.线程ID

--------------------------------------------------------------------------------------------------------------------------------

1.线程创建

pthread_create

 pthread_t *pthread 是一个输出型参数,会把我们的线程ID返回

pthread_self  ---  获取线程ID

 

这个问题我们最后在解决!!!

--------------------------------------------------------------------------------------------------------------------------

 线程健壮性的有问题的,一个线程出现了崩溃的问题,那么整个进程也就会跟着崩溃

 --------------------------------------------------------------------------------------------------------------------

 2.线程等待

一般而言,线程也是需要被等待的,如果不等待,可能会导致类似于”僵尸进程“的问题!!!

 上面我们的情况是代码跑完了的情况下pthread_join来获取线程的退出信息

但是要是我们线程是异常退出的呢??我们的pthread_join能够或者需要处理嘛???根本不需要!!!,我们线程出现崩溃的情况,我主线程也别管了,你也管不了,你也是跟着崩溃了,那么你pthread_join没有意义了

所以pthread_join只需要关心跑的对还是不对。

--------------------------------------------------------------------------------------------------------------------------

3.线程终止

线程终止的方案:

1.函数中return(a. main函数退出return的时候代表(主线程and进程退出),b.其它线程函数return,只代表当前线程退出 )

2.pthread_exit()

 

 exit()呢??

 exit是终止进程的,不要在其它线程中调用,如果你就像终止一个线程的话!!!

3.pthread_cancel  (取消目标线程!!!)

 

 为什么是-1呢???

如果以后看到一个线程的退出时的返回值是-1,证明这个线程是被取消的 !!!

4.线程分离

 如何分离呢???     pthread_detach

一个线程被设置分离之后,绝对不能在进行join了!!!!!

 主线程不退出,新线程处理完业务,处理完毕在退出!!!

5.线程ID

 可是这一串数字又是什么呢??

 

 


http://www.ppmy.cn/news/411907.html

相关文章

领域驱动应用架构实践

一个合适的应用架构不仅能促使项目朝着好的方向发展,易于维护,也能指导团队成员有效协作。 DDD是站在领域的角度来驱动应用架构的落地,接下来将介绍一种落地方案。 架构分层 首先在架构层次方面,在遵循DDD的分层架构模式的同时&…

【Vue】watch、methods 和 computed 的区别?

一、基本说明 1.computed: 计算属性将被混入到 Vue 实例中。所有 getter 和 setter 的 this 上下文自动地绑定为 Vue 实例。 2.methods: methods 将被混入到 Vue 实例中。可以直接通过 VM 实例访问这些方 法,或者在指令…

ARP病毒攻击技术分析与防御

102008-12-12 10:32近一段时间以来,政务网部分用户受到一种名为"ARP欺骗木马程序(病毒)"的攻击(ARP是"Address Resolution Protocol""地址解析协议"的缩写),极大地影响了政务网用户的正常使用,给整个政务网的安全带来严重的隐患。 一…

LaTeX插入参考文献

接着上一篇,用EndNote组织参考文献,然后再导入到LeTex中感觉不太好用,然后就学习了一下BibTeX来管理参考文献,发现还可以,这里记录一下,方便以后查阅。 LaTeX插入参考文献 thebibliographyBibTeX参考资料 t…

【Unity Shader】从入门到着魔(1)基本概念:什么是网格?材质?Shader?

文章目录 一、什么是网格(Mesh)?二、什么是MeshFilter(网格过滤器)?三、什么是MeshRenderer(网格渲染器)?四、什么是材质(Material)?五、什么是Shader(着色器)?一、什么是网格(Mesh)? 如上图,模型的三角形面就叫做网格(Mesh),它的本质是一堆顶点数据的规则…

牛人的PENTAX单反之路

下面一篇文章是转自网上的关于Pentax摄影牛人的发烧之路: 第一,套机,现在价格4800,减过200万绿森元,计2800 第二,DA50-200的套头,价格1900! 第三,防潮箱,必备…

摄影术语(五)

焦距系数(focal length multiplier)很多dSLR相机的传感器要小于35mm摄影胶片,只能捕捉镜头投射过来的部分信息。这就导致视野被裁切,让图像看似用较长的镜头拍摄的。另请参见裁切系数和dSLR裁切系数。 格式化(format&a…

佳能600D入门秘籍(五)

练习实战篇 第一单元:基础训练 (7个练习) ●练习1 全景深练习 被摄体:一般风景、花卉、城市建筑等冲击力较强的景物。 要求:画面全部实焦。 建议:尽量使用广角镜头:24mm~35mm拍摄, 光圈&#x…