Использование Thread.currentThread (). Interrupt ()
Прерывание потока
С каждым потоком связано логическое свойство, представляющееего прерванный статус.Прерванный статус изначально ложен;когда поток прерывается другим потоком через вызов Thread.interrupt (), происходит одно из двух.Если этот поток выполняет низкоуровневый метод прерываемой блокировки, такой как Thread.sleep (), Thread.join () или Object.wait (), он разблокирует и выдает исключение InterruptedException.В противном случае interrupt () просто устанавливает состояние прерывания потока.Код, выполняющийся в прерванном потоке, может позже опрашивать прерванный статус, чтобы узнать, было ли ему запрошено остановить то, что он делает;статус прерывания может быть прочитан с помощью Thread.isInterrupted (), а также может быть прочитан и очищен за одну операцию с плохо названным Thread.interrupted ().
Прерывание - это кооперативный механизм.Когда один поток прерывает другой, прерванный поток не обязательно останавливает то, что он делает немедленно.Вместо этого прерывание - это способ вежливо попросить другой поток прекратить то, что он делает, если захочет, в удобное для него время.Некоторые методы, такие как Thread.sleep (), серьезно относятся к этому запросу, но методы не обязаны обращать внимание на прерывание.Методы, которые не блокируют, но выполнение которых все еще может занять много времени, могут учитывать запросы на прерывание путем опроса статуса прерывания и возврата в случае прерывания досрочно.Вы можете игнорировать запрос на прерывание, но это может поставить под угрозу скорость реагирования.
Одним из преимуществ кооперативного характера прерывания является то, что он обеспечивает большую гибкость для безопасного создания отменяемых действий.Мы редко хотим, чтобы деятельность немедленно прекратилась;структуры данных программы могут остаться в несогласованном состоянии, если действие было отменено в середине обновления.Прерывание позволяет отменяемой операции очистить любую незавершенную работу, восстановить инварианты, уведомить другие действия об отмене и затем прекратить.