【问题标题】:Please Explain How Java synchronized work with static method? [duplicate]请解释 Java 同步如何与静态方法一起工作? [复制]
【发布时间】:2012-06-21 07:33:44
【问题描述】:

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

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

【问题讨论】:

标签: java static synchronized


【解决方案1】:

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

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

synchronized (something){
}

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

synchronized (this) {
}

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

synchronized (ThisClass.class){
}

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

【讨论】:

  • 不,我提到了静态方法和实例方法。那么这两种方法在访问时如何同步阻塞。特别是静态方法。访问时loked的概念是什么。
  • static synchronized void theMethod(){}static void theMethod(){ synchronized(ThisClass.class){} } 做同样的事情
猜你喜欢
  • 2013-07-14
  • 1970-01-01
  • 1970-01-01
  • 2011-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-06
  • 2011-07-10
相关资源
最近更新 更多