was macht rmi server weiter laufen?

8

Ich habe den folgenden RMI-Server-Code:

%Vor%

Wenn das obige Programm ausgeführt wird, wird es weiter ausgeführt, um auf Clientanforderungen zu warten. Aber was ich nicht verstehe, ist, was macht das Programm läuft, während es nicht in etwas wie while(true){}; ist und wie es aufhören zu hören, außer das ganze Programm zu stoppen?

    
ipkiss 16.09.2011, 14:13
quelle

3 Antworten

5

Was es am Laufen hält, ist ein nicht -Dämon-Überwachungsthread, der von RMI gestartet wurde. Um es zu beenden, entbinden Sie den Namen und exportieren Sie sowohl die Registrierung als auch das entfernte Objekt mit UnicastRemoteObject.unexportObject ().

    
EJP 16.09.2011, 21:31
quelle
1

Um es zu stoppen, sollten Sie

anrufen %Vor%     
datalost 16.09.2011 14:32
quelle
-2
  

Aber was ich nicht verstehe ist, was dieses Programm laufen lässt, solange es nicht so ist wie while (true) {}; und wie man es vom Zuhören abhält, außer das ganze Programm anzuhalten?

Dies geschieht durch Bearbeiten nicht - Bearbeiten daemon thread . Siehe: Was ist ein Daemon-Thread in Java? Sie können das Verhalten mit diesem kleinen Beispiel testen:

%Vor%

Die Einstellung verhindert, dass die JVM heruntergefahren wird. Nach System.out.println("Finished"); sehen Sie immer noch den Thread, der mit seinen "Woke up" log Ausgaben läuft.

    
Thor 16.09.2011 14:56
quelle

Tags und Links