-4

可能重复:
Java 同步方法:锁定对象或类

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

4

1 回答 1

1

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

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

synchronized (something){
}

使用同步方法,它会在对象实例本身(on this)上同步,因此它等同于:

synchronized (this) {
}

使用同步的静态方法,它在类对象上同步,就像“有人说过”一样。

synchronized (ThisClass.class){
}

机制始终相同:只有一个线程可以同时持有锁,其他线程必须等待。

于 2012-06-19T09:19:33.180 回答