Pthread-Threads und Signale

Ich verwende die pthread-Bibliothek unter Linux zum Erstellen von Threads und habe zwei Fragen zum Umgang mit Signalen in solchen Anwendungen.

Ich weiß, dass Signalhandler prozessweit sind, was bedeutet, dass, wenn ich den Handler in Prozess setze, jeder Thread diesen Signalhandler hat, auch ich weiß, dass es ihn gibtpthread_kill Funktion zum Senden von Signalen an bestimmte Threads.

Ich habe eine Frage zum Senden von Signalen mit beispielsweise Shellkill Befehl, soweit ich das verstehe, wenn ich zum Beispiel tippekill -INT PID ich werde schickenSIGINT damit zu verarbeitenPIDWenn dies ein Multithread-Programm ist, wird das Signal an einen der Threads in diesem Prozess gesendet.

Erste Frage: Ich kann nicht garantieren, an welchen der Threads dieses Signal geliefert wird. Kann ich nur sicher sein, dass es an einen Thread ohne dieses Signal in der Signalmaske geliefert wird?

Wenn ja, was ist mit wenigen Signalen, die an einen bestimmten Thread gesendet werden, wie 'SIGFPE', 'SIGSEGV', wenn ich sie mit senden werde?kill Shell-Befehl werden sie an zufällige Threads übergeben oder an den Thread, der andere Threads erstellt hat?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage