У меня сбой на клиенте (с помощью Samsung 8 Android 7.0).Это похоже на приложение Android, которое выходит из строя при превышении пула потоков 9 и задач в очереди 128 , за исключением того, что мне кажется, что у меня нет задачи с поставленными в очередь задачами из-за способа установки размера пула.Samsung 8 имеет 8 процессоров, верно?
Что здесь может пойти не так?
Вывод сбоя:
java.lang.RuntimeException:
at android.os.AsyncTask$3.done (AsyncTask.java:318)
at java.util.concurrent.FutureTask.finishCompletion (FutureTask.java:354)
at java.util.concurrent.FutureTask.setException (FutureTask.java:223)
at java.util.concurrent.FutureTask.run (FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run (AsyncTask.java:243)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
at java.lang.Thread.run (Thread.java:762)
Caused by: java.util.concurrent.RejectedExecutionException:
at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution (ThreadPoolExecutor.java:2049)
at java.util.concurrent.ThreadPoolExecutor.reject (ThreadPoolExecutor.java:814)
at java.util.concurrent.ThreadPoolExecutor.execute (ThreadPoolExecutor.java:1360)
at java.util.concurrent.AbstractExecutorService.submit (AbstractExecutorService.java:111)
at com.narb.chkapp.Disc.ScanAsync.isOpen (ScanAsync.java:100)
at com.narb.chkapp.Disc.ScanAsync.doInBackground (ScanAsync.java:215)
at com.narb.chkapp.Disc.ScanAsync.doInBackground (ScanAsync.java:36)
at android.os.AsyncTask$2.call (AsyncTask.java:304)
at java.util.concurrent.FutureTask.run (FutureTask.java:237)
Java-код:
@Override
protected Void doInBackground(String... arg0) {
int MAXTHREADS = Runtime.getRuntime().availableProcessors();
MAXTHREADS = 15 * MAXTHREADS;
executor = Executors.newFixedThreadPool(MAXTHREADS);