Servlets 将从servlet doGet()调用的所有方法都设置为静态以避免同步可以吗?

Servlets 将从servlet doGet()调用的所有方法都设置为静态以避免同步可以吗?,servlets,concurrency,static,synchronized,Servlets,Concurrency,Static,Synchronized,我有一个执行各种业务逻辑的servlet。我希望避免这样的同步: @Override protected void doGet(final HttpServletRequest _req, final HttpServletResponse _resp) throws ServletException, IOException { synchronized (MyServlet.class) { various(); calls();

我有一个执行各种业务逻辑的servlet。我希望避免这样的同步:

@Override
protected void doGet(final HttpServletRequest _req, final HttpServletResponse _resp) throws ServletException, IOException {
     synchronized (MyServlet.class) {
         various();
         calls();
         and_logic(_req, _resp);
     }
}
@Override
protected void doGet(final HttpServletRequest _req, final HttpServletResponse _resp) throws ServletException, IOException {
    _doGet(_req, _resp);
}

private static void _doGet(final HttpServletRequest _req, final HttpServletResponse _resp) throws ServletException, IOException {
     various();
     calls();
     and_logic(_req, _resp);
}
通过使所有被调用的方法都保持静态并按如下方式强制执行:

@Override
protected void doGet(final HttpServletRequest _req, final HttpServletResponse _resp) throws ServletException, IOException {
     synchronized (MyServlet.class) {
         various();
         calls();
         and_logic(_req, _resp);
     }
}
@Override
protected void doGet(final HttpServletRequest _req, final HttpServletResponse _resp) throws ServletException, IOException {
    _doGet(_req, _resp);
}

private static void _doGet(final HttpServletRequest _req, final HttpServletResponse _resp) throws ServletException, IOException {
     various();
     calls();
     and_logic(_req, _resp);
}
我不会使用任何静态变量,我所有的方法调用都假定是线程安全的。有什么不明显的缺点吗

我不会使用任何静态变量,我所有的方法调用都假定是线程安全的


在这些条件下,您既不需要同步,也不需要静态方法。只需使用servlet或其他服务类的实例方法。

公平地说,静态方法只是为了确保我或其他处理代码的人不会意外地使用或引入实例变量。@StefanSeidel那么,如何阻止他们引入静态变量呢?我真的认为你找错地方了。