powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по ThreadPoolExecutor
7 сообщений из 7, страница 1 из 1
Вопрос по ThreadPoolExecutor
    #38663605
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле даже 2 вопроса:
1. Правильно ли я понимаю логику его работы? Я отдаю на выполнение N задач, при этом corePoolSize == maximumPoolSize && N > corePoolSize. При этом так получается, что все из этих N задач выполняются неоправданно долго и время выполнения каждой начинает превышать keepAliveTime. Означает ли это, что N - maximumPoolSize будут выкинуты из очереди на выполнение?
2. Если я правильно понимаю п.1, то можно ли как отловить эти "выкинутые" задачи?
...
Рейтинг: 0 / 0
Вопрос по ThreadPoolExecutor
    #38663736
For All
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimirОзначает ли это, что N - maximumPoolSize будут выкинуты из очереди наНет, все задачи будут выполнены. Если в пуле 5 потоков, а задач 7, то начнут выполнятся какие-то 5 задач из 7ми теми 5ю потоками (2 оставшиеся задачи ожидают свободного потока). Как только одна из этих задач завершается, поток, поток её исполнявший, освобождается и береёт на выполенение задачу из ожидания
...
Рейтинг: 0 / 0
Вопрос по ThreadPoolExecutor
    #38663752
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
For All,
а что означает keepAliveTime? Видимо я не до конца понимаю, что означает javadoc:
javadockeepAliveTime when the number of threads is greater than the core, this is the maximum time that excess idle threads will wait for new tasks before terminating.
...
Рейтинг: 0 / 0
Вопрос по ThreadPoolExecutor
    #38663768
For All
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimirFor All,
а что означает keepAliveTime? Видимо я не до конца понимаю, что означает javadoc:
Как вы сами процитировали javadoc - the maximum time that excess idle threads will wait for new tasks before terminating.
В предыдущем примере 5 потоков и 7 задач. Рано или поздно все задачи будут выполнены, и все 5 потоков будут ожидать новой задачи (а её нет) - находиться в состоянии idle . Если новая задача не появится раньше, чем закончится таймаут kepAliveTime, то поток завершается.
...
Рейтинг: 0 / 0
Вопрос по ThreadPoolExecutor
    #38663796
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
For All,
Спасибо! Еще раз, для закрепления, верно ли я понял, чтоkeepAliveTime это время жизни только для idle потоков? При этом ни на занятые какой либо задачей потоки, ни на ожидающие в очереди потоки влияния не оказывает?
...
Рейтинг: 0 / 0
Вопрос по ThreadPoolExecutor
    #38663799
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читать как:
just_vladimirожидающие в очереди потокизадачи влияния не оказывает?
...
Рейтинг: 0 / 0
Вопрос по ThreadPoolExecutor
    #38663835
For All
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, только idle потоки. Все засабмиченные задачи всегда выполняются (только если она не будет удалена явно, или пулу сделать shutdown)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по ThreadPoolExecutor
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]