在信号头中有一个信号并上升。 Signal 用于捕获信号,raise 用于向调用者参数发送信号。
但是在使用pthread的多线程编程中,我们可以使用pthread_kill来向其他线程发送信号,但是如何接收通过pthread_kill调用发送的信号
如何接收通过 pthread_kill 调用发送的信号
一般可以处理信号的任何方式。
pthread_kill()
与 kill()
和 raise()
的不同之处主要在于如何选择处理信号的线程。使用 pthread_kill()
,调用者指定信号将定向到的线程(同一进程的)。使用 kill()
,调用者选择进程,但系统选择哪个线程。使用 raise()
,信号将被定向到调用 raise()
的线程。这些都不会改变信号的处理方式。
当信号在给定线程上变为待处理状态时,它将被处理
sigwait()
或 sigwaitinfo()
;或