Was ist der Java-Signal-Dispatcher-Thread?

8

Ich habe einen Thread-Dump eines Java-Prozesses durchgesehen und festgestellt, dass einige Threads vom Signal-Dispatcher blockiert wurden.

Was ist ein Signal-Dispatcher? Was macht es?

    
zxcv 25.10.2008, 00:17
quelle

2 Antworten

7

Ich habe einen Artikel dazu auf IBM developerWorks gefunden. Wenn das Betriebssystem ein Signal an die JVM sendet, übergibt der Signal-Dispatcher-Thread das Signal an den entsprechenden Handler

Revelations on Java signal handling und termination von Chris White, Software Engineer, IBM

    
Eric Weilnau 25.10.2008 00:29
quelle
4

OS-Signale sind von Natur aus single-threaded, daher ist es wichtig, dass sie alle im selben Thread behandelt werden. Ein Dispatcher ist also ein natürlicher Weg, dies zu erreichen. Stellen Sie sich das wie den einzelnen GUI-Ereignis-Thread für AWT vor.

Wenn Sie Linux verwenden und Ihre JVM eine native Bibliothek lädt, die eigene Signalhandler einfügt, müssen Sie libjsig.so . Ich habe es auf die harte Tour herausgefunden, als eine Netzwerkbibliothek eines Fremdanbieters meine Verbindungen mit fehlgeleiteten Sigpipes unterbrochen hat.

    
Chris Dolan 25.10.2008 03:56
quelle

Tags und Links