Mam jedno pytanie. W mojej aplikacji mam serwlet, którego kod inicjujący jest jak poniżej.Metoda init serwletu ze zsynchronizowanym blokiem
public class GameInitServlet extends HttpServlet {
private static boolean initialized = false;
@Override
public void init() throws ServletException {
// This is a safeguard against running init() more than once.
synchronized (GameInitServlet.class) {
if (initialized) {
LOG.error("GameInitServlet has already been initialized... Bailing out!");
return;
}
initialized = true;
}
//some code here....
}
}
UWAGA: W web.xml wyżej aplet jest posiadanie obciążenia na starcie jako 1, więc zostanie on zainicjowany w momencie uruchamiania aplikacji.
Moje pytanie brzmi: dlaczego synchronizujemy metodę init. W końcu będzie on obsługiwany przez kontener serwletów i będzie wywoływany tylko raz. Czy mogę usunąć powyższy proces synchronizacji lub wystąpi pewien wpływ na aplikację po jej usunięciu.
Może to pomóc: http://stackoverflowflow.com/questions/7826452/servelt-thread-pool-vs-servlet-instance-pool-by-the-web-container – Uooo