¿Java iterador de trabajo paralelo?

Estoy buscando una clase en la que pueda anular un método para hacer el trabajo y devolver los resultados como un iterador. Algo como esto:

ParallelWorkIterator<Result> itr = new ParallelWorkIterator<Result>(trials,threads) {

  public Result work() {
    //do work here for a single trial...
    return answer;
  }

};
while (itr.hasNext()) {
  Result result = itr.next();
  //process result...
}

Esto se utilizará principalmente para cosas como simulaciones de monte carlo, pero no quiero tener que lidiar con la configuración de grupos de subprocesos y la gestión de subprocesos de retorno cada vez. Rodé mi propia clase queOjalá logra esto, pero no estoy lo suficientemente seguro y pensé en verificar si algo como esto ya existía.

Edición: Para que quede claro, quiero que se siga ejecutando en segundo plano y los resultados de la cola después de cada método de trabajo se devuelvan hasta que se hayan completado todas las pruebas. Por lo tanto, el siguiente método puede esperar hasta que haya un resultado en la cola.

Respuestas a la pregunta(3)

Su respuesta a la pregunta