Bonjour,
J'ai un ensemble de threads (Tasks) qui s'exécutent en même temps et mon problème est que j'ai un traitement que j'aimerais lancer juste après la fin de tous les threads mais je n'arrive pas à le faire.
Pour mieux expliquer ma situation, je vous montre mon code :
Contrôleur :
Le problème est que si je mets le nouveau traitement de cette façon, il ne s'exécute pas à la fin des threads mais en parallèle à leur exécution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for (int k=1; k<=numberOfThreads;k++) { ThreadTestExecutor newThread = new ThreadTestExecutor(TestConfigPage.getRequestsList(), k); newThread.startTest(); } // Ici, aprés la fin de tous les threads, je veux éxécuter un autre traitement
La structure de mon thread est la suivante :
Comment pourrais-je bloquer ce traitement jusqu'à la fin des threads ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class ThreadTestExecutor{ public void startTest(){ new Thread(task).start(); } public Task task = new Task<Void>() { @Override public Void call() { // Traitement return null; } }; }
Merci d'avance pour votre aide.
Partager