2011-03-31 203 views
10
  1. 在unix中,如果一个多线程进程发送了一个信号,哪个线程将执行处理函数呢?多线程信号处理

  2. 如果它是一个多cpu机器,则多个线程同时运行。哪个线程将运行信号处理函数?

回答

9

根据man 7 signal,在这个过程中共享的所有线程相同的信号处理程序,并且如果信号被传递到与未阻塞信号的多个线程的方法,它们中的一个任意选择接收它。

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