如何判断线程的生死

news/2024/5/19 1:49:39 标签: signal, kill, thread

pthread_kill

别被名字吓到,pthread_kill可不是kill,而是向线程发送signal还记得signal吗,大部分signal的默认动作是终止进程的运行,所以,我们才要用signal()去抓信号并加上处理函数。

int pthread_kill(pthread_t thread, int sig);

向指定ID的线程发送sig信号,如果线程代码内不做处理,则按照信号默认的行为影响整个进程,也就是说,如果你给一个线程发送了SIGQUIT,但线程却没有实现signal处理函数,则整个进程退出。

pthread_kill(threadid, SIGKILL)也一样,杀死整个进程。
如果要获得正确的行为,就需要在线程内实现signal(SIGKILL,sig_handler)了。

所以,如果int sig的参数不是0,那一定要清楚到底要干什么,而且一定要实现线程的信号处理函数,否则,就会影响整个进程。


OK,如果int sig是0呢,这是一个保留信号,一个作用是用来判断线程是不是还活着。

我们来看一下pthread_kill的返回值:
成功:0
线程不存在:ESRCH
信号不合法:EINVAL

所以,pthread_kill(threadid,0)就很有用啦。

int kill_rc = pthread_kill(thread_id,0);

if(kill_rc == ESRCH)
printf("the specified thread did not exists or already quit/n");
else if(kill_rc == EINVAL)
printf("signal is invalid/n");
else
printf("the specified thread is alive/n");

上述的代码就可以判断线程是不是还活着了。

kill">

http://www.niftyadmin.cn/n/1713834.html

相关文章

linux ubuntu下的SourceInsight打开失败怎么办?

今天在分析代码时,SourceInsight突然关闭了,我很纳闷,试图从新打开,却一直是失败,弹出一个对话框说SourceInsight遇到严重问题,需要关闭,我郁闷坏了,试了几十遍都不行,然…

项目经理如何管理不同类型员工的扯皮攻略

一、如何管理不得力型员工 ●用宽容之心对待不得力的员工 ●用关爱之心激励不得力的员工 ●用真诚之心感化不得力的员工 ●以公平而严格的竞争和淘汰机制鞭策工作不得力的员工 二、如何管理酗酒型员工 ●酗酒给企业和家庭带来极大的损伤,在美国每年因酗酒造成的损失大约为260亿…

ALSA学习

一 . 介绍 ALSA 标准是一个先进的 linux 声音体系。它包含内核驱动集合, API 库和工具对 Linux 声音进行支持。 ALSA 包含一系列内核驱动对不同的声卡进行支持,还提供了 libasound 的 API 库。用这些进行写程序不需要打开设备等操作,所以编程…

JDK详细安装教程与MySQL安装教程

目录 myclipse eclipse IDEA 如何安装jdk mysql的安装 myclipse 优点:新手使用较方便,自带插件和jdk,功能比eclipse强大 缺点:占用内存大,大部分收费,破解版的也不好找,并且汉化比eclipse难…

List集合特点,遍历方式,ArrayList(去重原理,增长因子论,LinkedList)

目录 1.UML 2.集合框架 3.List集合 4.LinkedList 5.增长因子论证 6.List集合去重原理 1.UML 2.集合框架 Connection: 集合框架的顶级接口 set和list的父接口 不是map的父接口 3.List集合 特点:增删改查,有序,可重复 p…

I2C总线的学习

I2C总线[m] I2C总线原理及应用实例 I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用&a…

Set集合的特点,遍历方式,去重原理,排序方式

目录 1.Set集合的特点 不可重复 无序(无下标) 2.set集合遍历方式 foreach遍历 迭代器iterator遍历 3.Set集合去重 展示柜中不重复展示相同物品 4.set集合自然排序和比较器排序 Set集合自然排序 Set集合比较器排序 本…

Map集合(特点,遍历方式),HashMap,工具类,泛型

目录 1.Map集合的特点 2.Map集合的遍历方式 3.常用实现类HashMap 4.泛型 作用:将运行产生的异常转换为编译器的错误;提高代码健壮性 泛型类:通用增删改查的思考 5.集合框架工具类 Connections 集合转数组:toArray Array…