Me pregunto si un típico while(true)
ServerSocket escuchar bucle lleva un núcleo entero que esperar y aceptar una conexión de cliente (incluso cuando la aplicación ejecutable y el uso de Thread .start()
)Eficiencia de while (true) ServerSocket Escucha
Me estoy poniendo en práctica un tipo del clúster de computación distribuida y cada computadora necesita cada núcleo que tiene para el cálculo. Un nodo maestro necesita comunicarse con estas computadoras (invocando métodos estáticos que modifican el funcionamiento del algoritmo).
La razón por la que necesito utilizar sockets se debe a las capacidades de plataforma cruzada/lenguaje cruzado. En algunos casos, PHP invocará estos métodos estáticos de Java.
Utilicé un generador de perfiles de Java (YourKit) y puedo ver el hilo de ejecución de ServerSocket en ejecución y nunca duerme, y siempre se está ejecutando. ¿Hay un mejor enfoque para hacer lo que quiero? O, ¿el rendimiento será insignificante?
Por favor, siéntase libre de ofrecer cualquier sugerencia si se puede pensar en una mejor manera (He intentado RMI, pero no se admite entre lenguajes.
Gracias a todos
Por lo tanto, no debería ocurrir si está utilizando 'aceptar'. ¿Puedes publicar algún código? – msandiford
erickson estaba justo en el lugar con el código que publicó while (true) { Socket socket = server.accept(); /* Haga algo con el zócalo ... */ } – Submerged
¿Cuántas conexiones/segundo está manejando? – msandiford