Nici i sygnały wątku

Używam biblioteki pthread pod Linuksem do tworzenia wątków i mam dwa pytania dotyczące obsługi sygnałów w takich aplikacjach.

Wiem, że procedury obsługi sygnału są w całym procesie, co oznacza, że ​​jeśli ustawię procedurę obsługi w procesie, każdy wątek będzie miał ten program obsługi sygnału, również wiem, że istniejepthread_kill funkcja wysyłania sygnałów do poszczególnych wątków.

Mam pytanie dotyczące wysyłania sygnałów za pomocą na przykład powłokikill komendę, o ile rozumiem, jeśli napiszę na przykładkill -INT PID wyślęSIGINT przetwarzać z tymPID, jeśli jest to program wielowątkowy, sygnał zostanie dostarczony do jednego z wątków w tym procesie.

Pierwsze pytanie: nie będę miał żadnej gwarancji, który z wątków ten sygnał zostanie dostarczony. Mogę być tylko pewien, że zostanie dostarczony do jednego wątku bez tego sygnału w masce sygnału?

Jeśli tak, co z kilkoma sygnałami, które są dostarczane do konkretnego wątku, np. „SIGFPE”, „SIGSEGV”, jeśli wyślę je za pomocąkill komenda powłoki zostaną dostarczone do losowego wątku lub zostaną dostarczone do wątku, który stworzył inne wątki?

questionAnswers(1)

yourAnswerToTheQuestion