![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| novichiok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 15.9.2011 Репутация: нет Всего: нет |
Здравствуйте. У меня такой вопрос - есть какое то ограничение на размер очереди тасков в ThreadPoolExecutor ? Если есть, то что будет происходить если submit в пул ,будет вызываться уже после достижения максимального размера очереди ?
|
|||
|
||||
| jk1 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
По умолчанию ограничение - Integer.MAX_VALUE. Его можно изменить, передав в конструктор ThreadPoolExecutor соответствующую очередь для задач. При её создании как раз можно задать ограничение.
Для обработки этой ситуации можно использовать собственную реализацию RejectedExecutionHandler, которую можно передать в конструктор ThreadPoolExecutor. Это сообщение отредактировал(а) jk1 - 17.10.2011, 14:52 -------------------- Opinions are like assholes — everybody has one |
||||
|
|||||
| novichiok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 15.9.2011 Репутация: нет Всего: нет |
Спасибо за ответ.
А если я использую RejectedExecutionHandler по умолчанию, как он себя поведет при попытке сабмита в переполненную очередь ? Поток повиснет на сабмите пока блокирующая очередь не начнет опустошаться ? и ещё такой вопроc, я посмотрел javadoc для ThreadPoolExecutor'а - и там очередь хранящая таски типизированна на Runnable, а как же Callable ? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| novichiok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 15.9.2011 Репутация: нет Всего: нет |
Ясно, спасибо
В доках сказано что RejectedExecutionHandler вызовется если таск был отвергнут методом execute(), у меня в коде таски добавляются submit()'ом. Для сабмита rejectedExecution тоже будет вызываться ? И потом, до сих пор не могу никак понять ... void rejectedExecution(Runnable r, ThreadPoolExecutor executor) Почему только Runnable ? а если у меня в пуле выполняются и Runnable и Callable ? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
На самом деле submit() методы в итоге вызывают execute(). Так что - будет.
Потому, что на самом деле в submit() и Runnable и Callable оборачиваются в RunnableFuture. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| novichiok |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 15.9.2011 Репутация: нет Всего: нет |
Понял, спасибо
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |