首页 > 解决方案 > 静态方法同步会延迟类对象的创建吗?

问题描述

class A{
    synchronized static void method(){
        doSomethingLongTime(); // here A.class monitior is taken.
    }
}

…………

new A(); // does this blocked by doSomethingLongTime() ?

上面的代码描述了我的问题:new A()明确处理 A.class,所以它被阻塞了吗?

标签: javasynchronization

解决方案


没有。静态方法上的锁是在 A 类对象上获取的。没错。但是 new A() 不在同步块内。所以这条线不需要等待任何锁定对象并且可以继续。新对象的构造不会被阻塞,否则在同步块中明确指定。


推荐阅读