Методы isInterrupted() и interrupted() в Java используются для проверки статуса прерывания потока, но они имеют различное поведение. Метод isInterrupted() является нестатическим методом класса Thread и возвращает значение флага прерывания для данного потока. Если флаг прерывания установлен, метод возвращает true, иначе - false. При этом состояние флага прерывания не изменяется. Например, следующий код проверяет флаг прерывания для потока myThread: if (myThread.isInterrupted()) {
// выполнение действия при прерывании потока } С другой стороны, метод interrupted() также является нестатическим методом класса Thread, но он проверяет флаг прерывания для текущего потока. Если флаг прерывания установлен, метод возвращает true, а затем сбрасывает флаг прерывания до значения false. Если же флаг прерывания не был установлен, метод возвращает false. Например, следующий код проверяет флаг прерывания для текущего потока и сбрасывает его до значения false: if (Thread.interrupted()) {
// вы