Почему я не могу вызвать 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) {
            }
        }