Дело не в if. Дело в том, что поток не может работать без условия. Условия можно создавать как через if, так и через отдельные методы, можно использовать лямбду. В ИИ создают коплексы методов и зашивают их в целые протоколы, но там очень сложная цепочка логики взаимодействия методов
То есть, вызов thread.interrupt(); не сработает без if (Thread.currentThread().isInterrupted()){....} Мудрено...
Дело не в if. Дело в том, что поток не может работать без условия. Условия можно создавать как через if, так и через отдельные методы, можно использовать лямбду. В ИИ создают коплексы методов и зашивают их в целые протоколы, но там очень сложная цепочка логики взаимодействия методов