两个synchronized方法可以相互调用吗
今天写程序的时候遇到一个问题:两个synchronized方法可以相互调用吗?略微搜索一下,发现有人跟我说不可以,理由是会死锁,大致意思就是A()方法占有了锁,调用B方法的时候需要等待,会形成死锁。我特地写了小程序验证了一下,程序如下
package test;public class TestSync {public synchronized void A(){System.out.println("A");B();}private synchronized void B(){System.out.println("B");}public static void main(String[] args){TestSync test = new TestSync();test.A();}}