У меня есть Runnable
реализующий класс, который будет запускаться с Executors.newFixedThreadPool
Внутри Runnable
у меня работает бесконечный цикл, который прослушивает UDP-порт для входящих данных.
Я хочу изящно завершить Runnable
, чтобы закрыть указанные порты UDP.
Как мне этого добиться?
При прямом расширении Thread
у меня есть доступ к interrupt (), isInterupted () и т. Д., На которых я могу основать свой бесконечный цикл.
Однако в классе реализации Runnable
я хочу сделать что-то вроде
@Override
public void run() {
while (active) {
}
}
и имеют
private boolean active = true;
Как установить active = false, когда ThreadPool завершен?