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

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

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

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

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

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

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

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