0
最近我看到有人寫這段代碼,其中Courses
是一個靜態對象,持有1個PersistenceManager
實例。持久性管理器修改對象甚至關閉?
public class Courses {
private PersistenceManager pm;
private static Courses instance = null;
public Courses() {
pm = PMF.get().getPersistenceManager();
}
public static Courses inst() {
if (instance == null)
instance = new Courses();
return instance;
}
public void addCourse(String ID, String name) {
Course course = new Course(ID, name, coordinatorID);
pm.makePersistent(course);
pm.close();
}
}
此代碼有效。
我的問題是,因爲只有1個持久性管理器實例,所以當第二個請求進入addCourse
時,是不是已關閉?爲什麼它仍能堅持對象?
我大概知道GAE使用Jetty Server。與Apache不同的是,Jetty每進入一個請求就會產生一個新的線程。這與這張圖片有什麼關係?