此程序是否在单线程或多线程上运行
的Servlet
public class PagesNavigation extends HttpServlet {
private static final long serialVersionUID = 1L;
public UserData user = null;
public void init(ServletConfig config) throws ServletException {
super.init(config);
try {
user = new UserData(); //I will use this object to access all functions.
} catch (Exception e) {
e.printStackTrace();
}
}
}
类:UserData
public class UserData {
AvailableProducts availableProducts = new AvailableProducts();
UserSelectedProduct userSelectedProduct = new UserSelectedProduct();
ProductsCart productsCart = new ProductsCart();
CartView cartView = new CartView();
ProductsForCheckout productsForCheckout = new ProductsForCheckout();
}
感谢您的帮助。
答案 0 :(得分:1)
只是为了澄清 - servlet是单例,它们肯定是由多个线程运行的。
此外,AvailableProducts也可能是一个单例并在所有用户之间共享 - 除非您为给定用户定制产品。
答案 1 :(得分:0)
如果你正在进行Java Enterprise Edition编程(通常是HttpServlet
),那么它都是多线程的,只有很少的特定例外。您的UserData
对象几乎肯定需要线程安全。