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 :
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
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.

La structure de mon thread est la suivante :
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;
        }
    };
}
Comment pourrais-je bloquer ce traitement jusqu'à la fin des threads ?

Merci d'avance pour votre aide.