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