JAVA: переменная stati c класса не увеличивается за пределами области действия метода run () - PullRequest
0 голосов
/ 18 июня 2020

Почему переменная класса stati c не увеличивается за пределами области действия метода run ()? *

Я пробовал распечатать значения переменной, только чтобы прийти к заключению что он не увеличивается за пределами области действия метода run (). Ниже приведен фрагмент кода. Любая помощь будет принята с благодарностью!

    static int turn = 0;
    private int playerNumber;

    public Player(int playerNumber) {
        this.playerNumber = playerNumber;
    }
    public static void increaseTurnCount(){
        turn += 1;
        turn %= 4;
    }
    public void run() {
        synchronized (this) {
            while (this.playerNumber != turn) {
                try {
                    this.wait();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            System.out.println(playerNumber + " " + turn);
            increaseTurnCount();
            notifyAll();
        }
    }

}

public class MyGame {
    public static void main(String ar[]) throws Exception{
        // Runnable job = new Runnable();
        int playerNum = 4;
         Player player[] = new Player[4];
        for (int i = 0; i < playerNum; i++) {
            player[i] = new Player(i);
        }
        for (int i = 0; i < playerNum; i++)
            player[i].start();
        for (int i = 0; i < playerNum; i++)
            player[i].join();

    }
}```


...