Задачу я решил, но до конца не понял алгоритм работы. Поясните, код ниже из задачи: булевая переменная isWinnerFound = false, соответственно прерывания из цикла while будут запущены сразу после запуска нитей геймеров, т.к. (!) стоит перед isWinnerFound, а после того, как один из геймеров победит, цикл остановит прерывание всех геймеров переводом isWinnerFound в true, что не логично, т.к. ! и true это false. Я понимаю, что я что-то не верно понимаю, поясните пожалуйста, что именно?
public void run() {
gamer1.start();
gamer2.start();
gamer3.start();
while (!isWinnerFound) {
}
gamer1.interrupt();
gamer2.interrupt();
gamer3.interrupt();
}