同步方法以递归方式调用自身。这是坏的吗?
2022-09-01 10:12:57
						这个问题的要点是说明Java没有像我预期的那样工作。
您希望以下代码的行为方式如何?
public class SynchTester {
  private static SynchTester synchTester;
  public synchronized static SynchTester getSynchTester(){
    if(synchTester==null){
      synchTester = new SynchTester();
    }
    return synchTester;
  }
  private SynchTester() {
    SynchTester myTester = getSynchTester();
  }
  public static void main(String[] args) {
    SynchTester tester = SynchTester.getSynchTester();
  }
}
我希望它挂在死锁上等待递归完成,但它会抛出StackOverflow。显然,同步不会阻止对同一线程的访问。
这是一个错误吗?
 
					 
				 
				    		 
				    		 
				    		 
				    		