Me pregunto, que tan caro es tener muchos hilos en estado de espera en java 1.6 x64.Cuantos recursos consumen los hilos para dormir y para esperar
Para ser más específicos, estoy escribiendo una aplicación que se ejecuta en muchas computadoras y envía/recibe datos de una a otra. Me siento más cómodo al tener un hilo separado para cada máquina y tarea conectada, como 1) enviar datos, 2) recibir datos, 3) restablecer la conexión cuando se cae. Entonces, dado que hay N nodos en el clúster, cada máquina tendrá 3 subprocesos para cada uno de los N-1 vecinos. Normalmente habrá 12 máquinas, lo que equivale a 33 hilos de comunicación.
La mayoría de estos hilos estarán durmiendo la mayor parte del tiempo, por lo que para optimizarlos podría reducir el número de hilos y darle más trabajo a cada uno de ellos. Como por ejemplo. restablecer la conexión es responsabilidad de recibir el hilo. O el envío a todas las máquinas conectadas se realiza por un solo hilo.
Entonces, ¿hay algún impacto significativo en el rendimiento al tener muchos hilos para dormir?
No debería utilizar JRocikt JVM resolver estos problemas, ya que he leído que fue diseñado para manejar miles de subprocesos. –
No tengo experiencia alguna con JRockit JVM, así que realmente no puedo comentar sobre eso. Habiendo dicho eso, sé que la mayoría de los sistemas operativos funcionarán mal con miles de hilos, así que no sé cómo JRockit soluciona ese problema ... – Liedman
Los servidores de 64 bits son la norma ahora. Me pregunto si OOM debido a los grandes requisitos de espacio de direcciones no es un problema. – Raedwald