Мне нужно написать код для параллельного Mergesort, и моя проблема в том, что если реализация сортировки слияния хочет создать новый поток, она должна проверить, есть ли доступный нить или нет (поэтому я создал Threapool (max 5 Threads) .Это также работает, но моя проблема заключается в том, что я должен использовать только 5 потоков без их повторного использования.Макс. созданный Threads with Threadpool Java
Это означает, что если нет доступных слотов нити, поток просто выполняет для своей части массива традиционный рекурсивный алгоритм сортировки слияния.
int nThreads = 5;
ExecutorService executor = Executors.newFixedThreadPool(nThreads);
for (int i = 1; i < 10; i++){
Runnable worker = new Mergesort(array);
executor.execute(worker);
}
executor.shutdown();
while(!executor.isTerminated()) {
}
Спасибо вам большое! Я думаю, что CallerRunsPolicy() - это то, что нужно искать :) – Merve