Главная

Java

Многопоточность

Synchronizers


пример Phaser:


public class PhaserExample {

    public static void main(String[] args) {
        Phaser phaser = new Phaser(2);
        new Washer(phaser).setName("Мойщик №1");
        new Washer(phaser).setName("Мойщик №2");
    }

    static class Washer extends Thread {
        final Phaser phaser;

        Washer(Phaser phaser) {
            this.phaser = phaser;
            start();
        }

        @Override
        public void run() {
            for (int i = 0; i < 3; i++) {
                System.out.println(getName() + " моет машину №" + i);
                phaser.arriveAndAwaitAdvance();
            }
        }
    }
}


Полезные ссылки: