java - 静态方法同步会延迟类对象的创建吗?
问题描述
class A{
synchronized static void method(){
doSomethingLongTime(); // here A.class monitior is taken.
}
}
…………
new A(); // does this blocked by doSomethingLongTime() ?
上面的代码描述了我的问题:new A()
明确处理 A.class,所以它被阻塞了吗?
解决方案
没有。静态方法上的锁是在 A 类对象上获取的。没错。但是 new A() 不在同步块内。所以这条线不需要等待任何锁定对象并且可以继续。新对象的构造不会被阻塞,否则在同步块中明确指定。
推荐阅读
- python - 切片数据并聚合计数
- apache - htaccess 重定向所有以 /ee 开头的页面
- vba - VBA 根据条件复制粘贴
- html - preview title doesn't show on Facebook post
- c# - 如何将 C# 字符串“-0”解析为双 -0.0?
- jquery - JQuery : Set iframe height dynamically by content
- c# - Microsoft.Net.Compilers 大大增加了编译时间
- eclipse - 我应该在 Pydev/Eclipse 中安装 confluent_kafka
- c# - 使用 Microsoft Graph 在 Planner 中为当前用户获取所有计划
- angular - Angular 2+ - 自动在所有 ngOnInit 上运行相同的代码