10
votes

Qu'est-ce que RMI Server continue à fonctionner?

J'ai le code serveur RMI suivant: xxx

lorsque le programme ci-dessus est exécuté, il continue à attendre les demandes de clients. Mais ce que je ne comprends pas, c'est ce que le programme ne cesse pas de fonctionner pendant que ce n'est pas dans quelque chose comme tandis que (vrai) {}; et comment arrêter de l'écoute, sauf arrêter tout le programme?


0 commentaires

3 Réponses :


1
votes

Pour l'arrêter, vous devriez appeler

LocateRegistry.getRegistry().unbind("rmi://host:port/name");


3 commentaires

Tort. Un déliantage n'est pas suffisant pour l'arrêter à moins que plusieurs autres conditions soient remplies.


@EJP Quelles sont ces conditions?


Tous les objets distants devraient être inexportés. Cela peut être accompli directement, conformément à ma réponse ou via l'opération de DGC et de GC local, s'il n'y a pas de références en direct distantes ou locales aux objets distants.



-2
votes

Mais ce que je ne comprends pas, c'est ce que ce programme continue à fonctionner pendant que ce n'est pas dans quelque chose comme {vrai) {}; et comment l'arrêter d'écouter, sauf arrêter tout le programme?

Ceci est fait par un edit non - edit thread de démon . Voir: Qu'est-ce que le fil de démon dans Java? Vous pouvez tester le comportement avec ce petit exemple: xxx

Le réglage empêche le JVM de s'éteindre. Après system.out.println ("fini"); Vous voyez toujours le thread en cours d'exécution avec son "réveillé" sorties de journal.


2 commentaires

Pas une réponse. Threads Daemon N'arrêtez pas Stop the JVM de quitter: c'est tout le point. Ne répond pas du tout à la question.


Les threads non-démon empêchent la JVM de sortir. Voir Spécification de la langue Java



6
votes

Qu'est-ce qui fait que la course à pied est un non -daemon écoutant le fil a commencé par RMI. Pour la sortir, entrez le nom et les exemplaires à la fois du registre et de l'objet distant, avec UnicastremoteObject.unexportObject ().


1 commentaires

@ Muhammad Mauvaises réponses Obtenez la bownvote, c'est ainsi que cela fonctionne, et des bowvotes doivent être expliqués (a) comme une courtoisie à leur auteur (B) au profit des autres et c) aux fins de la discussion. Ceci s'appelle «examen par les pairs».