Два синхронизированных метода Java в одном экземпляре

рассмотрим следующий код:

public class SynchronizedCounter extends Thread {
    private int c = 0;

    public synchronized void increment() {
        c++;
    }

    public synchronized void decrement() {
        c--;
    }

    public void run() {
        for(;;)
            increment();
    }
}

static void main(String[] args) {
    SynchronizedCounter counter = new SynchronizedCounter();
    counter.start();
    for(;;)
        counter.decrement();
}

означает ли это, что методы increment()и decrement()будут ждать друг друга заканчивать или нет?

РЕДАКТИРОВАТЬ: а этого не дождаться?

static void main(String[] args) {
    SynchronizedCounter counter1 = new SynchronizedCounter();
    SynchronizedCounter counter2 = new SynchronizedCounter();
    counter1.start();
    for(;;)
        counter2.decrement();
}
12
задан MBZ 13 May 2012 в 11:54
поделиться