请解释Java synchronized如何使用静态方法工作?

请解释Java synchronized如何使用静态方法工作?,java,static,synchronized,Java,Static,Synchronized,可能重复: 请解释Java synchronized如何使用静态方法工作?有人说它是由它的类对象完成的,但他们没有说锁是如何使用它完成的。您总是在监视器对象上进行同步。这里可以使用每个Java对象 使用同步块,可以直接指定该对象 synchronized (something){ } 使用synchronized方法,它会在对象实例本身上对此进行同步,因此它与: synchronized (this) { } 使用同步静态方法,它在类对象上同步,就像有人说的那样 synchronized

可能重复:


请解释Java synchronized如何使用静态方法工作?有人说它是由它的类对象完成的,但他们没有说锁是如何使用它完成的。

您总是在监视器对象上进行同步。这里可以使用每个Java对象

使用同步块,可以直接指定该对象

synchronized (something){
}
使用synchronized方法,它会在对象实例本身上对此进行同步,因此它与:

synchronized (this) {
}
使用同步静态方法,它在类对象上同步,就像有人说的那样

synchronized (ThisClass.class){
}

机制总是一样的:只有一个线程可以同时持有锁,其他线程必须等待。

它不锁定实例,而是锁定表示类的对象。谷歌搜索更多细节。不,我需要静态方法和实例方法。所以这两种方法在访问时是如何同步块的。特别是静态法。当它访问.static synchronized void方法{}与static void方法{synchronized this class.class{}做相同的事情时,loke的概念是什么