Ребят я в разрядном дилеммы между Tree Set
и Thread Pool Executor
Лучший подход: дерево структура набора против пула потоков ИСПОЛНИТЕЛЬ
Ниже приводится сценарий:
Первый подход
- Я должен использовать структуру который имеет задачи в нем с приоритетами каждой задачи. Теперь на основе
treeset constructor
(с интерфейсомcomparator
) - Я могу сравнить задачу по приоритетам и на основе при этом задания упорядочиваются должным образом.
- Теперь после этого задачи должны обрабатываться в порядке приоритета через итерацию набора деревьев и выполнять каждую задачу поочередно.
Второй подход
- второй подход, чтобы сделать какую-то логику построения и использовать базовую функциональность
Thread pool executor
и для этого я взял вдохновение из this link и я достиг моих требований с этим подходом и которым сначала выберет приоритетное задание и выполнит его первым и таким же образом выполнит все задачи.
Теперь мое замешательство заключается в том, какой из них лучше всего использовать в отношении эксплуатационных расходов, гибкости (увеличения/уменьшения потоков) и т. Д. И почему я должен его выбирать?
Любые предложения и ответы высоко оценены.
Я не думаю, что приоритет пула потоков гарантированно сделает эти потоки первыми, поэтому ваш набор деревьев звучит лучше. –
Большинство примеров с исполнителями, которые я видел, используют очереди. Почему бы не использовать 'PriorityQueue' с тем же компаратором? Спросить, что является «лучшим», действительно зависит от вашего использования и рабочей нагрузки, так как нет ни одного ответа, который всегда будет работать для вашей конкретной задачи. – Makoto
@Evan knowles Я сделал оригинальный прототип модели «исполнитель пула потоков» и получил ожидаемые результаты, если вы хотите получить результат, который вы можете посмотреть на примере, представленном в ссылке выше вопроса, которая содержит основной пример метода, и его вывод делает его более описательным –