java同步是否适用于不同名称的方法?

时间:2014-10-08 01:26:57

标签: java synchronization

class public Test
{
    private int counter;

    public synchronized change()
    {
        counter++;
    }

    public change2()
    {
        synchronized(this){
            counter--;
        }
    }

}

我们可以同时调用change和change2吗?

1 个答案:

答案 0 :(得分:3)

名称与此无关。 锁定的是对象(不是变量,不是引用)。

如果一个线程已经开始执行一个在一个对象上同步的块,那么尝试在同一个对象上同步的任何其他线程都将阻塞并等待,直到该原始线程完成其块的执行。