关于synchronized,单例模式
public class AppContext {
private static AppContext instance;
private AbstractApplicationContext appContext;
public synchronized static AppContext getInstance() {
if (instance == null) {
instance = new AppContext();
}
return instance;
}
private AppContext() {
this.appContext = new ClassPathXmlApplicationContext(
"applicationContext.xml");
//applicationContext.xml
}
public AbstractApplicationContext getAppContext() {
return appContext;
}
}
我觉得此处public synchronized static AppContext getInstance() 这样不太好,理由是每次这方法,都要锁住,容易死锁,如网络有有堵塞时,
我认为改成这样较好:
请高手为我解惑.
public class AppContext {
private static AppContext instance=new AppContext();;
private AbstractApplicationContext appContext;
public synchronized static AppContext getInstance() {
return instance;
}
private AppContext() {
this.appContext = new ClassPathXmlApplicationContext(
"applicationContext.xml");
//applicationContext.xml
}
public AbstractApplicationContext getAppContext() {
return appContext;
}
}