【发布时间】:2011-10-25 13:04:51
【问题描述】:
最近看到有人写了这段代码,其中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 请求进来时,不是 pm 已经关闭了吗?为什么还能持久化对象?
我大致知道 GAE 使用 Jetty Server。与 Apache 不同的是,Jetty 会为每个传入的请求生成一个新线程。这与这幅图有什么关系?
【问题讨论】:
标签: google-app-engine servlets persistence jetty datanucleus