Soy bastante nuevo en Java y realmente disfruto aprendiendo sobre él. Hice un programa que funciona bien, pero demora un poco cuando agrego más datos para procesar. Lo hice enhebrado y realmente lo aceleró mucho, pero ahora estoy pensando en tratar de acelerarlo más (obviamente, más datos tiene que procesar cuanto más tiempo lleve). Solo digo, mi programa no comparte datos entre hilos, obtiene un elemento de una lista y hace algunos cálculos y carga el resultado a una base de datos. Idealmente, algunas computadoras de trabajo obtienen algunos elementos de la lista y luego hacen su trabajo y luego obtienen más trabajo hasta que se hace¿Distribuye hilos Java en varios servidores?
Investigué un poco y encontré colas, y no estoy seguro si es lo que necesito o si hay algo más por ahí (también estaba pensando que mantener la integridad/monitor de los trabajadores puede ser demasiado para que yo escriba como novato). Tengo 4 computadoras en casa (algunas Linux, Mac y Windows ... pero puedo instalar linux vm en todos los sistemas no Linux si estas soluciones son específicas) y quería intentar que también comenzaran a trabajar en esta tarea. Pensé en crear colas de Java que los otros clientes tomaran una pieza y procesar, pero también vi bibliotecas (rabbitmq). También miré brevemente sobre la computación grid.
¿Es este el camino a seguir o hay una manera mejor? No necesito ningún código ni nada, solo quiero saber cuáles son las soluciones para distribuir los hilos o qué factores usar al evaluarlos.