Многопоточная обработка сигналов

  • В unix, если многопоточному процессу был отправлен сигнал, какой поток будет выполняться с помощью функции обработки?

  • если это машина с несколькими процессорами, одновременно выполняется более 1 потока. какой поток будет включен для запуска функции обработки сигнала?

Ответ 1

В соответствии с man 7 signal все потоки процесса имеют один и тот же обработчик сигнала, и если сигнал доставляется в процесс с несколькими потоки, которые не заблокировали сигнал, один из них произвольно выбран для его получения.

Наличие многопроцессорной машины не изменит эту семантику.