关于linux中进程与线程处理信号问题
在进程中创建一个线程,并设置信号处理函数,此时进程与线程的信号行为一样,那么我向进程发送信号时,谁能捕捉到这个信号?
1.进程?
2.线程?
3.进程和线程都能? linux?信号处理?线程 linux 信号 线程
[解决办法]
进程里包含主线程和主线程的子线程,这个概念先搞清楚。
信号会随机发给一个没有阻塞该信号的线程,另外信号处理函数是所有线程共享的。
[解决办法]
可以参考APUE, 一个多线程的进程收到信号时,由系统随机选择一个线程来处理。如果想让特定的线程处理,使用pthread_sigmask()函数在其它线程中屏蔽掉该信号。