Linux信号 六 信号与线程的关系

本文详细介绍了POSIX标准,这是IEEE为在各种UNIX操作系统上运行的软件定义的一系列API标准,旨在实现源代码级别的软件可移植性。文章还深入探讨了POSIX标准在多线程环境下的信号处理机制,包括信号处理函数的共享、信号的进程级发送、信号递送的线程选择以及致命信号的影响范围。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    " POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,
缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各
种UNIX操作系统上运行的软件而定义的一系列API标准的总称.
    POSIX标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作系
统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执行。" 

POSIX标准对多线程情况下的信号机制提出来一些要求:

1. 信号处理函数必须在多线程进程的所有线程间共享,但是每个线程要有自己的挂起信号集合和阻塞信号掩码。

2. POSIX函数kill/sigqueue必须面向进程,而不是进程下某个特定的线程。

3. 发送给多线程应用的信号仅递送给一个线程,这个线程是由内核从不会阻塞该信号的线程中随意选出来的。

4. 如果发送一个致命信号到多线程,那么内核将杀死该应用的所有线程,而不仅仅是接收信号的那个线程。

基本上Linux也都遵循这些需求。

 

 

 

 

 

 

 

参考资料:

1. 《Linux环境编程,从应用到内核》高峰,李彬著

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值