Ответ 1
Цитирование man pthreads
POSIX.1 отличает понятия сигналов, которые направлены на процесс в целом, и сигналы, направленные на отдельные потоки. Согласно POSIX.1, направленный на процесс сигнал (отправленный с использованием kill (2), например) должен обрабатываться одним, произвольно выбранным потоком в процессе.
Были проблемы в Linux в дни glibc 2.2 и старше (linuxthreads использовался как реализация pthread); но поскольку glibc 2.3-2.4 имеет NPTL, который более точно соответствует POSIX о сигналах.
Я могу только быть уверенным, что он будет доставлен в один поток без этого сигнала в маске сигнала?
Если вы используете kill - yes; к случайному потоку, который не блокирует этот сигнал.
Если да, то что относительно нескольких сигналов, которые доставляются в конкретный поток, например "SIGFPE", "SIGSEGV",
Они доставляются в конкретный поток только тогда, когда они генерируются процессором/ядром (по определенной инструкции в некотором контексте); а не утилитой kill
с аргументом PID
если я пошлю их с помощью команды kill shell, они будут доставлены в случайный поток или они будут доставлены в поток, который создал другие потоки?
Они будут доставлены в случайную цепочку процессов, обычно они отправляют сигналы всей системы. Но если сигнал смертелен, все потоки в процессе будут уничтожены.
PS: http://www.linuxprogrammingblog.com/all-about-linux-signals?page=11