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 verarbeitenPID
Wenn 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?