J'ai un contrôleur dans lequel j'utilise l'interface future et la création de 5 threads dans le pool de threads. Ce contrôleur est appelé par un appel ajax. Quand j'appelle ce contrôleur la première fois qu'il fonctionne bien mais si je fais à nouveau la demande il montre l'exception ci-dessous.Comment supprimer java.util.concurrent.RejectedExecutionException lors de l'utilisation Future Interface
java.util.concurrent.RejectedExecutionException: Task [email protected] rejected from [email protected][Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 5]
Je poste du code comment j'appelle les tâches.
private static final ExecutorService threadpool = Executors.newFixedThreadPool(20);
FactorialCalculator task1 = new FactorialCalculator("A");
FactorialCalculator task2 = new FactorialCalculator("B");
FactorialCalculator task3= new FactorialCalculator("C");
FactorialCalculator task4 = new FactorialCalculator("D");
FactorialCalculator task5= new FactorialCalculator("E");
System.out.println("Submitting Task ...");
Future future1 = threadpool.submit(task1);
Future future2 = threadpool.submit(task2);
Future future3 = threadpool.submit(task3);
Future future4 = threadpool.submit(task4);
Future future5 = threadpool.submit(task5);
System.out.println("Task is submitted");
Dans la première demande, il est en cours d'exécution tous Tasks- A, B, C, D et E, mais quand je fais la demande à nouveau il imprime la soumission des tâches, mais n'imprime pas la tâche est soumis. Quelqu'un peut-il aider à ce que je fais mal.
Est-ce qu'il se produit une fermeture de l'exécuteur? – Fildor