请解释Java如何与静态方法同步?

时间:2012-06-19 09:16:12

标签: java static synchronized

  

可能重复:
  Java synchronized methods: lock on object or class

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

1 个答案:

答案 0 :(得分:1)

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

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

synchronized (something){
}

使用synchronized方法,它在对象实例本身上同步(在this上),因此它与:

相同
synchronized (this) {
}

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

synchronized (ThisClass.class){
}

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