Equivalente de Java para python pool.map/ Multiprocesamiento

Me preguntaba si alguien podría indicarme un equivalente simple del módulo de multiprocesamiento de python en java.

Tengo un escenario de parallel processing simple (donde no interactúan 2 procesos): tome un conjunto de datos y divídalo en 12 y aplique un método Java a los 12 conjuntos de datos, recopile resultados y únalos en una lista de algún tipo con el mismo orden.

Java es un lenguaje “pro” que parece tener múltiples bibliotecas y métodos. ¿Alguien que pueda ayudar a este novato de Java a comenzar?

Me gustaría hacer esto con un mínimo de encoding, ya que dije que mi requisito es bastante sencillo.

Actualización: cómo hacer multiprocesamiento en java y qué ganancias de velocidad esperar?

Esto parece indicar que los hilos son el camino a seguir. Supongo que no tengo más remedio que meterme en un montón de esclusas (juego de palabras involuntario) y esperar a que mi barco navegue. Ejemplos simples son bienvenidos sin embargo.

No hay una clase exactamente compatible, pero ExecutorService le ofrece todo lo que necesita para implementarlo.

En particular, no hay una función para asignar un Callable sobre una Collection y esperar los resultados, pero puede crear fácilmente una Collection> partir de un Callable y Collection , y luego llamar a invokeAll , que le devuelve una List> .

(Si desea emular algunas de las otras funciones del multiprocessing.Pool . En lugar de eso, deberá hacer un bucle alrededor del submit y crear su propia colección de cosas para esperar. Pero el map es simple).