私は将来のインターフェイスを使用し、スレッドプールで5つのスレッドを作成しているコントローラを持っています。このコントローラーは、ajax呼び出しによって呼び出されます。私はこのコントローラを初めて呼び出すときにうまく動作しますが、私がリクエストをもう一度行うと、以下の例外が表示されます。将来のインターフェイスを使用中にjava.util.concurrent.RejectedExecutionExceptionを削除する方法
java.util.concurrent.RejectedExecutionException: Task [email protected] rejected from [email protected][Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 5]
私はどのようにタスクを呼び出しているのですか?最初の要求で
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");
それはすべてのtasks- A、B、C、DとEを実行しているが、私は再び要求を行う際には、タスクを送信する出力しますが、タスクが送信される印刷されません。誰かが私が間違っていることを助けることができますか?
エグゼキュータをシャットダウンするとどうなりますか? – Fildor