JavaRush/Курсы/Java Multithreading/Задачи на пул потоков

Задачи на пул потоков

Открыта

— Привет, Амиго!

16
Задача
Java Multithreading,  8 уровень,  8 лекция
Недоступна
Знакомство с Executors
Знакомство с Executors
16
Задача
Java Multithreading,  8 уровень,  8 лекция
Недоступна
Знакомство с ThreadPoolExecutor
Знакомство с ThreadPoolExecutor
9
Задача
Java Multithreading,  8 уровень,  8 лекция
Недоступна
ShutdownNow!
ShutdownNow!
Комментарии (71)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Virgilion
Уровень 41
15 октября 2024, 13:12
Подскажите по задачке: Знакомство с ThreadPoolExecutor. Не проходит условие 2: "В цикле добавь в очередь 10 задач Runnable". "Ошибку" я понял, использую метод "put", а не "add"(унаследованный от AbstractQueue). В связи с чем вопрос: а в реальности какой метод нужно использовать? Ведь по сути, разница в том, что "add" кидает исключение если нет места в очереди, а "put" ждет появление этого места. Но условие "ДОБАВИТЬ задачи в очередь", а не "ПОПРОБОВАТЬ добавить")
Kirill
Уровень 46
4 декабря 2024, 05:00
Всё зависит от того, какого поведения ты хочешь добиться. Например метод put() у интерфейса BlockingQueue гарантировано добавит задачу в очередь. Но при этом он является блокирующим, и если задач много, они тяжеловесные и потоки из пула с ними не справляются, приложение просто повиснет. Метод add() наоборот, реализован неблокирующим, и в случае, когда очередь переполнена, он выбросит IllegalStateException. Но при этом сохраняется возможность повесить на пул потоков обработчик отклонённых задач при помощи метода setRejectedExecutionHandler() класса ThreadPoolExecutor. Например, можно их собрать в коллекцию, после чего снова попытаться позже отправить на исполнение. Соответственно, использование метода add() является более гибким подходом.
Denis Odesskiy Full Stack Developer
30 мая 2024, 10:59
О, это замечательные утилиты для многопоточности. Немного имел ранее с ними дело. Очень мощные, хорошо настраивать, и простые в применении. Также там замечательные есть классы/интерфейсы Callable и Future и Completablefuture, для асинхроннки, вещь просто незаменимая и необычайно гибкая.
26 апреля 2024, 12:31
Вот нормальные задачи, кайф. И понял как работает и закрепил на примерчике. Так бы все лекции были.
Мирослав
Уровень 37
Expert
21 апреля 2024, 14:01
Пойди туда, не зная куда...... и т.д 1 2 без теории которую нужно искать, не решить
Алексей
Уровень 40
Expert
20 февраля 2024, 17:55
Отличные задачи, пришлось покапаться но все понял в итоге)
Lo
Уровень 35
Expert
7 января 2024, 15:32
Описание задач супер! Бывали задачи намного проще и легче, где я смотрела готовое решение, просто потому, что ни фига не поняла что хотят. А эти хоть и сложные в понимании материала,но решила сама с удовольствием.
Jerry Backend Developer
24 января 2022, 17:50
По первой задаче аналогичный цикл с лямбдой фейлится. Свинство....
executorService.execute(() -> doExpensiveOperation(localId));
Кирилл
Уровень 35
11 апреля 2022, 19:27
через submit все проходит
Zhenya Workout
Уровень 43
20 марта 2023, 18:04
Почему execute, если submit нужно использовать?
Ars
Уровень 41
28 октября 2021, 15:28
Инфа по последней задаче: Среднее количество попыток для этой задачи 2.25. Всего эту задачу решили 6502 учеников.
Виктор
Уровень 1
3 октября 2022, 09:59
это очень странно, потому что у меня на 03.10.2022 написано, что "Всего эту задачу решили 5599 учеников." Задача называется "ShutdownNow!" из пакета package com.javarush.task.task28.task2812;
Baixa
Уровень 43
7 октября 2021, 14:05
Отличные задачи, даже решение не смотрел
Larisa Java Developer
23 января 2022, 16:15
В смысле?? А так можно было?? )
Алексей
Уровень 35
24 августа 2021, 06:50
Задачки "на пощупать" потоки и очереди.