Я использую стороннюю библиотеку для обработки большого количества наборов данных. Процесс очень редко заходит в бесконечный цикл (или блокируется - не знаю почему и не могу попасть в код). Я хотел бы убить это через определенное время и перейти к следующему делу. Простой пример:
for (Object data : dataList) {
Object result = TheirLibrary.processData(data);
store(result);
}
processData обычно занимает максимум 1 секунду. Я хотел бы установить таймер, который убивает processData (), скажем, через 10 секунд
EDIT
Я был бы признателен за фрагмент кода (я не практиковался в использовании потоков). Подход Executor выглядит полезным, но я не совсем понимаю, с чего начать. Кроме того, псевдокод для более традиционного подхода слишком общий, чтобы я мог его кодировать.
@ Стивен Шланскер - предполагает, что, если стороннее приложение не ожидает прерывания, оно не будет работать. Опять детали и примеры будут оценены
EDIT
Я получил точное решение, которое я хотел от моих коллег Сэма Адамса, к которому я добавляю ответ. В нем более подробно, чем в других ответах, но я дам им обоим право голоса. Я отмечу Сэма как одобренный ответ