synchronized 方法 和 synchronized代码块 竞争的是同一把锁吗?
如果一个类如下
class A {
private synchronized void fun1() {
}
private synchronized void fun2() {
}
}
我的理解是这两个同步的方法竞争的是同一把锁this,在访问其中的一个方法的过程中,另一个方法是不能访问的,我说的访问是objectName.的形式
如果是这样的形式
class A {
private synchronized void fun1() {
}
private void fun2() {
synchronized(this){
}
}
}
这样能达到相同的效果吗,也就是说,在方法签名中声明为synchronized 和 在代码块中竞争this锁是同一把锁吗,谢谢,欢迎大家发表意见。