Конечно.Используйте ядерное оружие.Звоните System.exit(0)
в конце вашего основного потока.Это убьет все.Даже активный поток, ожидающий в System.in.
Проблема заключается в том, что System.in является традиционным входным потоком с блокировкой, а когда он блокируется, поток помечается как работающий.Вы не можете прервать это.Поэтому любой поток, который вы используете для чтения System.in, вызывает read, и чтение блокирует поток.Некоторые из этих вещей можно обмануть кучей трюков, избегая вызова read, за исключением тех случаев, когда мы можем быть уверены, что блока не будет, а затем постоянно опрашивать.Но в действительности нет способа обойти проблему, что любая попытка чтения, которая заблокирует ваш поток, и никакое количество закрытия базовых потоков или прерывания или остановки потока не спасет вас.Но, если вы убьете весь vm ... поток умрет.
Очевидно, вам нужно убедиться, что остальные потоки правильно завершены, и это всего лишь одна глупость, на которую я хочу ответитьТипизированный поток ввода, который является последним вешалкой.Но, если это полностью так, правильный ответ - это выйти, или, по крайней мере, по сути, единственный ответ, который будет работать без записи тактов без причины и позволить программе завершиться.