2014-02-12 5 views
0

Если у меня есть программа с двумя потоками и обработчик сигнала, зарегистрированный на signum, который что-то печатает. Сколько раз оно будет напечатано, если я отправлю сигнальный знак в мою программу?Обработчик сигналов с потоками

ответ

1

Я предполагаю систему Unix или Unix. Сигнал получает только один из потоков. От TLPI:

Когда сигнал поступает в многопоточном процесс, который имеет установил обработчик сигнала, ядро ​​произвольно выбирает один нить в процессе, к которому доставить сигнал и вызывает обработчик в этом потоке.

+0

Не могу винить вас, я также игнорирую существование Microsoft :-) – e271p314

+0

Я думаю, что также важно сказать, что с помощью 'pthread_sigmask' вы можете контролировать, какие потоки получают какие сигналы. Используя это, вы можете эффективно контролировать, к какому потоку будет передан ваш сигнал. – e271p314

Смежные вопросы