Учитывая два потока Java, остановите один поток, когда один из них завершится

Я ищу чистый дизайн / решение этой проблемы: у меня есть два потока, которые могут работать столько, сколько хочет пользователь, но в конечном итоге останавливаются, когда пользователь выдает команду остановки. Однако, если один из потоков заканчивается внезапно (например, из-за исключения во время выполнения), я хочу остановить другой поток.

Теперь оба потока выполняютRunnable (поэтому, когда я говорю 'остановить поток Я имею в виду, что я вызываю метод stop () наRunnable например), что яя думаю, чтобы избежать использования потоков (класс Thread) и использоватьCompletionService интерфейс, а затем отправить оба Runnables для экземпляра этой службы.

С этим я бы использовал CompletionService 'метод сtake(), когда этот метод возвращает, я бы остановил оба Runnables, так как я знаю, что по крайней мере один из них уже завершен. Теперь это работает, но, если возможно, я хотел бы узнать более простое / лучшее решение для моего случая.

Кроме того, что является хорошим решением, когда у нас естьn темы и как только один из них заканчивает останавливать выполнение всех остальных?

Заранее спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос