Если перед методом phaser.arriveAndDeregister(); вызвать System.out.println(phaser.getRoot()); , то мы увидим java.util.concurrent.Phaser@27d6c5e0[phase = 0 parties = 6 arrived = 4] я так понимаю, что это значит , что нужно еще две parties получить , чтобы код пошел дальше, но мы же phaser.arriveAndDeregister(); только одну parties дадим, где еще одна возьмется? почему вообщем разница между parties и arrived равна 2?