Signal会分发到多线程的任意一个线程上面去的

March 04, 2014 | 0 Minute Read

http://man7.org/linux/man-pages/man7/signal.7.html

没有使用pthread_sigmask(3) 设置mask拒接这个信号的线程都有可能收到kill 发给进程的信号,系统任意选可以接收信号的线程来投递。该线程怎么处理这个信号的结果作为整个进程的行为。如果这个线程没有捕获退出信号,那么改进程的所有线程都会被杀死了了。 可以用pthread_kill 给指定的线程发送信号,这样可以避免系统随机选择一个符合条件的线程来投递信号。但即使这样,收到信号的线程怎么处理信号的结果还是作为整个进程的处理结果的。 看来这个信号确实不应该使用啊,多线程里面感觉很麻烦。