java - 同步静态方法与同步类对象

标签 java static synchronize

假设我的 Foo 类看起来像这样

public class Foo
{
    public static void func_1() { /* do something */ }
    public static void func_2() { /* do something */ }
}

我的 Bar 类看起来像这样

public class Bar
{
    public void method_1()
    {
         synchronized(Foo.class)
         {
             Foo.func_1();
         } 
    }          
}

现在不是在 Bar.method_1 中锁定 Foo.class 对象,我可以声明 Foo.func_1Foo. func_2 作为synchronized,并且仍然出于相同的目的归档?

谢谢

最佳答案

静态同步方法获取类的锁,通过获取 Foo.class 的锁,你在做同样的事情。所以是的,他们将实现同样的目标。

关于java - 同步静态方法与同步类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18063423/

相关文章:

Java Bitset 初始化

java - JAXB 显示 XML 元素,其中文本散布在子元素中

c - 为什么这个静态函数有三个前缀?

java - 静态变量作为全局变量,静态对象何时被垃圾收集?

java - 阻塞一个线程,直到它从其他线程获得特定信号(java)

java - JDBCTemplate 的 PreparedStatement 抛出异常 "Before start of result set"

c++ - VC++ 警告 C4356 : static data member cannot be initialized via derived class

java - java中的同步关键字和静态类

java - 两个不同执行 block 之间的同步器

java - 为 JApplet 设置 "Publisher"