Tengo este bucle que establece el trabajo para cada hilo, mi pregunta es cómo puedo en este mismo bucle iniciar el hilo y evitar otro bucle

 List<Thread> works= new ArrayList<Thread>();
        for (final action a : actions) {
            threads.add(new Thread(() -> {
                jobMethod(a);
            }));
        }

Esto es que me gusta evitar:

for (Thread t : threads) {
    t.start();
}
-1
user63898 8 jun. 2021 a las 17:51

2 respuestas

La mejor respuesta

Sólo:

List<Thread> works= new ArrayList<Thread>();
for (final action a : actions) {
  // local var
  Thread tTmp = new Thread(() -> {
    jobMethod(a);
  });
  threads.add(tTmp);
  // and shoot!
  tTmp.start();
}

??

;-)

2
xerx593 8 jun. 2021 a las 14:58

Declarar una variable? Parece bastante trivial:

Thread t = new Thread(() -> jobMethod(a));
threads.add(t);
t.start();
3
rzwitserloot 8 jun. 2021 a las 14:57