【发布时间】:2017-07-20 08:55:23
【问题描述】:
我必须知道在我的 servlet 中存在竞争条件,因为我有一些全局声明的变量在其中使用。所以我的问题是我是否在doGet 或doPost 方法之外的其他方法中声明这些变量。它们不会在不同线程之间共享吗?
如果是,我们如何避免条件竞争。我想避免使用 ThreadLocal 和 singelThreadModel 。
这是一个例子
public class UserServlet extends HttpServlet {
private String userString1 = "";
private String userString2 = "";
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
someTask(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
someTask(request, response);
}
public void someTask(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
userString1 = request.getParameter("someParameter");
userString2 = request.getParameter("someParameter");
}
}
注意:这只是一个示例,而不是实际代码。
【问题讨论】:
标签: java multithreading servlets