我注意到有趣的行为:
我可以写
class My {
public My(){
synchronized(this){
// code
}
}
}
但我不能写
class My {
public synchronized My(){
// code
}
}
}
我认为两种结构都与java API相同。
请澄清这种误解。
答案 0 :(得分:2)
在第一种情况下,几乎创建了对象,只需要执行构造函数的主体。
但是,在第二种情况下,没有任何对象可以同步。
答案 1 :(得分:0)
两个线程创建相同对象是不可能的情况!
因此,同步修饰符对构造函数没有意义。