多线程信号处理

Leo*_*eon 10 unix multithreading signals

  1. 在unix中,如果多线程进程发送了一个信号,哪个线程将执行处理函数?

  2. 如果是多CPU机器,则同时运行多个线程.哪个线程将运行信号处理功能?

Jon*_*han 10

根据man 7信号,进程中的所有线程共享相同的信号处理程序,并且如果信号被传递到具有未阻塞信号的多个线程的进程,则其中一个线程被任意选择以接收它.

拥有多CPU机器不会改变这些语义.