Метод interrupt() для прерывания потока в Java рекомендуется использовать для вывода потока из состояния ожидания или спячки. 14
Если у потока были вызваны методы sleep() или wait(), то текущее состояние прервётся и будет выброшено исключение InterruptedException. 14
Если поток не находится в спящем или ожидающем состоянии, то вызов метода interrupt() не прерывает поток, но устанавливает флаг прерывания в значение true. 1
Однако есть исключение: если поток заблокирован на чтении данных, то вызов interrupt() из этого состояния его не выведет. 4