1 信号的概念
是向进程发送的软件通知。
信号的生命周期:generate deliver, deliver的含义
deliver的含义:进程接收到信号并采取行动。
挂起的信号的概念
已经generate还没有被deliver的信号.
2 信号掩码 的本质
信号掩码是一个信号集,进程要阻塞某些信号可以通过设置信号掩码。
信号阻塞 和信号忽略的区别
信号忽略 忽略的信号不会deliver给进程,该信号会被丢弃。
信号阻塞
对某个信号设置阻塞后,该信号不会被传递,指定解除阻塞后才会把传递。
3 信号在多线程中的应用
信号掩码的作用:
4 信号等待
pause sigsupend 的区别 不理解
int sigwait(const sigset_t *restrict set, int *restrict signop);
sigwait函数将阻塞调用他的线程,直到收到它所监听的信号发生了,然后sigwait将其从未决队列中取出(因为被阻塞了,所以肯定是未决了),但是有一点需要注意的是:它从未决队列取出之后,并不影响那个被取出的信号原来被阻塞的状态。它所做的工作只有两个:第一,监听被阻塞的信号;第二,如果所监听的信号产生了,则将其从未决队列中移出来。
5 虽然信号处理程序是 进程范围内的 ,但是线程可以设置自己的信号掩码。
pthread_sigmask
6 信号,实现线程间同步
运用sigwait对阻塞信号的监听功能。
本文深入探讨了信号的概念及其生命周期,详细解释了信号如何在进程间传递,重点介绍了信号掩码的本质、信号阻塞与忽略的区别,以及在多线程环境下信号的应用。同时,阐述了如何通过sigwait函数实现对阻塞信号的监听功能,以及信号如何在不同线程间的同步作用。
10万+

被折叠的 条评论
为什么被折叠?



