powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / нужен простой пример завершения некоего java-вызова по таймауту
5 сообщений из 5, страница 1 из 1
нужен простой пример завершения некоего java-вызова по таймауту
    #39559243
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подскажите, как правильно и просто можно контроллировать по времени выполнение некоей функции F которая может зависнуть на очень долго. Нужно через 3 минуты выполнение обрубить и выдать ошибку.

Я сам в яве совсем не спец! ))
Cпасибо заренее!

P.S. Среда разработки: Talend.
...
Рейтинг: 0 / 0
нужен простой пример завершения некоего java-вызова по таймауту
    #39559285
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем случае - никак.

P.S. Вы, конечно, можете накостылять решение для некоторых частных случаев, но делать этого не надо. Совсем.

P.P.S. Один из "некоторых частных случаев" - запуск "проблемной функции" в отдельном потоке.
...
Рейтинг: 0 / 0
нужен простой пример завершения некоего java-вызова по таймауту
    #39559289
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik,

Выполнить вызов функции в другом потоке и попытаться получить
результат выполнение с указанием максимального времени ожидания.

(см. ExecutorService, Future, ScheduledExecutorService)

а в Unit-тестах есть специальная аннотация .
...
Рейтинг: 0 / 0
нужен простой пример завершения некоего java-вызова по таймауту
    #39560107
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cпасибо! Буду изучать!
...
Рейтинг: 0 / 0
нужен простой пример завершения некоего java-вызова по таймауту
    #39560111
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnikподскажите, как правильно и просто можно контроллировать по времени выполнение некоей функции F которая может зависнуть на очень долго. Нужно через 3 минуты выполнение обрубить и выдать ошибку.

Сильно зависит от того по какой именно причине "функция" зависает. Если это какой-то цикл который много вычислений делает (занимает CPU), то единственным безопасные вариантом является проверка некого флага. Например Thread.isInterrupted()

Если же "функция", в основном, блокируется на ожидани чего-то (данных от аппаратного обеспечения или освобождения критического ресурса) то из таких блокировок можно через тот же Thread.interrupt() перехватывая и обрабатывая InterruptedException.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / нужен простой пример завершения некоего java-вызова по таймауту
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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