Et cette solution?
Il n'utilise pas la classe Thread, mais il est simultané et, d'une certaine manière, il fait exactement ce que vous demandez
ExecutorService pool = Executors.newFixedThreadPool(2); // creates a pool of threads for the Future to draw from
Future<Integer> value = pool.submit(new Callable<Integer>() {
@Override
public Integer call() {return 2;}
});
Maintenant, tout ce que vous faites est de dire value.get()
que chaque fois que vous avez besoin de récupérer votre valeur retournée, le thread est lancé à la seconde où vous donnez value
une valeur afin que vous n'ayez jamais à dire là- threadName.start()
dessus.
Quelle Future
est, est une promesse au programme, vous promettez le programme que vous obtenez la valeur dont il a besoin dans le futur proche
Si vous l'appelez .get()
avant que ce soit fait, le thread qui l'appelle attendra simplement que ce soit terminé