Почему иногда срабатывает исключение InterruptedException, ведь Thread.interrupted() проверяет флаг прерывания и тут же сбрасывает?
public class TestClass {
public static void main(String[] args) throws InterruptedException {
Thread threadExample = new Thread(new JoinClass());
threadExample.start();
Thread.sleep(1000);
threadExample.interrupt();
}
}
class JoinClass implements Runnable {
@Override
public void run() {
System.out.println("run.." + Thread.currentThread().isInterrupted());
while (!Thread.interrupted());
System.out.println("end while.." + Thread.currentThread().isInterrupted());
try {
Thread.sleep(100);
System.out.println("try..");
} catch (InterruptedException e) {
System.out.println("catch..");
}
System.out.println("end run.." + Thread.currentThread().isInterrupted());
}
}
run..false
end while..false
catch..false
end run..false
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники