Контекст: Я так понимаю, что пул (ExecutorService) используется только когда нужно создать большое число потоков (по модели: поток родился, выполнил работу, умер) и тогда пул является ограничителем одновременно действующих, чтобы они всей своей массой не завалили нагрузкой доступные ресурсы машины (защита от чрезмерных потерь от переключения контекста). А вот, если я сразу создаю только ограниченное количество потоков (по числу ядер на машине) и потом "в ручную" отслеживаю их количество (если кто-то отвалился то вместо него генерирую новый), то в этом случае пул потоков и не требуется
Преамбула Стоит задача парсить (40-100 тыс.) web-ссылок. Не знаю, как лучше поступить
Через пул код кажется проще(чище). Не нужно заводить счетчик работающих потоков, отслеживать не отвалился ли кто. Просто, в взять из коллекции ссылку, запустить парсер... и так в цикле 10ки тысяч раз. Пул сам потом отследит, чтобы одновременно работало не более указанного числа потоков.
Или все же, изначально создавать только несколько потоков, которые обрабатывают всю коллекцию ссылок. В этом случае потребуется немного больше кода.
Вопрос Правильно ли я понимаю, что, если, чем проще код, тем надежнее/лучше/прибыльнее/красивее и т.п., то пул - это лучший выбор "ленивого-clean-кодера", или я что-то не учел с ним связанное?
Виртуальный выделенный сервер (VDS) становится отличным выбором
Я пытаюсь создать некий Repository для хранения данных между событиями жизненного цикла Android приложенияСледую архитектуре паттерна MVVM, также...
Приветсвую, есть у меня в коде класс ConfirmDialog, цель которого при нажатии кнопки Продолжить, выполнить действие, а при нажатии отмена, убрать...
При выполнении appendChild появляется следующая ошибка