Я много искал, но не нашел никакого решения. Я использую пул потоков java таким образом:
ExecutorService c = Executors.newFixedThreadPool(3);
for (int i = 0; i < 10; ++i) {
c.execute(new MyTask(i));
}
Таким образом, задачи выполняются в последовательном порядке (как в очереди). Но мне нужно изменить стратегию "выбрать следующую задачу". Поэтому я хочу назначить каждой задаче указать приоритет (это не приоритет потока), а выполнение задач соответствует этим приоритетам. Поэтому, когда исполнитель закончил другую задачу, он выбирает следующую задачу как задачу с максимальным приоритетом. Он описывает общую проблему. Возможно, существует более простой подход, который не учитывает приоритеты. Он выбирает последнюю добавленную задачу как следующую для выполнения вместо первого добавления. Грубо говоря, FixedThreadPool использует стратегию FIFO. Могу ли я использовать, например, стратегию LIFO?