如果在java中重新分配同步变量会发生什么?

cod*_*efx 5 java synchronization

以下代码中会发生什么?同步是否有效?这是一个面试问题.

class T
{
    public static void main(String args[])
    {
        Object myObject = new Object();
        synchronized (myObject)
        {
            myObject = new Object();
        } // end sync
    }
}
Run Code Online (Sandbox Code Playgroud)

Pet*_*rey 4

每次进入同步块时,都会在不同的对象上进行同步。大多数时候,除了让你感到困惑之外,这不会做任何事情,但是两个线程有​​一个很小的机会会看到同一个对象并等待。

因此,如果您在非final.