一个简单的class:
Class Test(){
public synchronized static void A(){
B();
...........
....................
}
private synchronized static void B(){
...................
}
}在如上类中,如果调用A()方法,那么加的是对象锁,那么A()中调用B()函数是否能执行。
书上说对象锁中其他的synchronized函数将无法被调用, 而我的测试代码似乎可以执行,难以理解?求解答!
Class Test(){
public synchronized static void A(){
B();
...........
....................
}
private synchronized static void B(){
...................
}
}在如上类中,如果调用A()方法,那么加的是对象锁,那么A()中调用B()函数是否能执行。
书上说对象锁中其他的synchronized函数将无法被调用, 而我的测试代码似乎可以执行,难以理解?求解答!
书中的意思是,一个线程执行A时,另一个线程是不能执行B,或者反过来一个线程执行B时,另一个线程不能执行A,但是对一个同一个线程,在A中调用B,不存在排他问题,因为线程在调用A时,其他线程没法调用B