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

    " 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环境编程,从应用到内核》高峰,李彬著

 

 

 

 

猜你喜欢

转载自blog.csdn.net/fuyuande/article/details/83927270