Почему я не могу вызвать Thread.isInterrupted() вместо Thread.currentThread().isInterrupted() ? в первом случае компилятор ругается что я вызываю нестатический метод из статического контекста, а во втором не ругается - но метод по прежнему не статический
В ЧЕМ РАЗНИЦА ЭТИХ ДВУХ ВЫЗОВОВ ? ОНИ ВЕДЬ ОБА ВЫЗЫВАЮТСЯ ИЗ ТЕКУЩЕГО ПОТОКА
public static class Water implements Runnable {
private String sharedResource;
public Water(String sharedResource) {
this.sharedResource = sharedResource;
}
public void run() {
//fix 2 variables - исправь 2 переменных
boolean isCurrentThreadInterrupted = Thread.currentThread().isInterrupted();
String threadName = Thread.currentThread().getName();
try {
while (!isCurrentThreadInterrupted) {
System.out.println("Объект " + sharedResource + ", нить " + threadName);
Thread.sleep(1000);
}
} catch (InterruptedException e) {
}
}