Состояние гонки может возникнуть, даже если действие «проверить и действовать» не предусмотрено, например, в следующем коде десять запросов приведут к десяти потокам, но после этого счетчик не гарантированно будет равен 10. Прежде всего, я прав, говоря это?
private int numPageHits;
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
//this method executes whenever the servlet is hit
//increment numPageHits
numPageHits++;
}
Одним из решений может быть использование блока синхронизации, например:
synchronize(this) {
numPageHits++;
}
Мне просто интересно, есть ли другой способ справиться с этой ситуацией?
Спасибо