Effizienz der while(true) ServerSocket Hören

Frage ich mich, ob eine typische while(true) ServerSocket hören Schleife nimmt einen ganzen Kern, zu warten und zu akzeptieren, eine client-Verbindung (Auch bei der Implementierung von runnable und Verwendung Thread .start())

Ich die Umsetzung eine Art von distributed computing cluster und jeder computer braucht jeder Kern hat es für die Berechnung. Ein Master-Knoten benötigt für die Kommunikation mit diesen Rechnern (Aufruf von statischen Methoden, das ändern des Algorithmus funktionieren).

Der Grund, warum ich brauchen, um sockets verwenden, ist aufgrund der cross-Plattform /cross-language-Fähigkeiten. In einigen Fällen wird PHP Aufruf dieser java statische Methoden.

Habe ich eine java-profiler (YourKit) und ich kann sehen, meine läuft ServerSocket listen-thread und es schläft nie und es ist immer mit. Gibt es eine bessere Methode das zu tun, was ich will? Oder wird die Leistung Treffer vernachlässigbar sein?

Bitte fühlen Sie sich frei zu bieten jede Anregung, wenn Sie sich vorstellen können, einen besseren Weg (ich habe versucht, RMI, aber es wird nicht unterstützt cross-Sprache.

Danke an alle

  • Damit sollte nicht passieren, wenn Sie ‘akzeptieren‘. Kannst du etwas code?
  • erickson war genau auf den Punkt mit dem code, den er geschrieben while (true) { Socket socket = server.accept(); /* Tu was mit sockel... */ }
  • Wie viele verbindungen/Sekunde sind Sie die Handhabung?
  • Jetzt, nicht viele. Jedoch, das könnte leicht in ein Dutzend oder so. Die Informationen, die übertragen wird, ist sehr klein, so sollte es nicht sein, viele gleichzeitige aktive sockets
InformationsquelleAutor Submerged | 2010-05-17
Schreibe einen Kommentar