これは、私の以前の投稿に関連する姉妹の質問です: 高同時実行性が満たされる場合の単純な Web サーバー
インタビューの質問は次のとおりです。
public class CounterServlet extends HttpServlet{
private volatile static int counter=0;
public int getCounter()
{
return counter;
}
public void service(HttpServletRequest request
HttpServletResponse response) throws IOException
{
counter++;
PrintWriter out=response.getWriter();
out.write("hello");
}
高い同時実行性が発生した場合、上記のコードでどのような問題が発生しますか? 私の分析は次のとおりです。サーブレットはシングルトンであるため、同期に問題が発生します。カウンターが揮発性として宣言されているため、問題を防ぐことはできません。サービスメソッドを同期することをお勧めしますか?