マルチスレッド化に関する問題

IlvManagerServlet クラスは Servlet API からの SingleThreadModel インターフェースを実装しないので、マルチスレッド・モデルまたはシングル・スレッド・モデルを使用するサーブレットを作成することができます。
サーブレットが SingleThreadModel インターフェースを実装している場合は、サーブレットへの同時アクセスを処理する必要はありません。サーブレットはスレッド・セーフです。ただし、このインターフェースは、 静的クラス変数またはサーブレットの範囲外のクラスなど、 サーブレットが共有リソースへアクセスする結果生じる同期化問題を避けることはできません。
サーブレットが SingleThreadModel インターフェースを実装していない場合は、サーブレットへの同時アクセスに配慮する必要があります。IlvManagerView 上で IlvManagerServlet が行うすべての基本操作は、既に同期化されています。つまり、IlvManagerView に対して何か追加のアクションを実行する場合のみ、同時アクセスに注意する必要があります。この場合は、ロック・オブジェクトを定義して、IlvManagerServletgetLock メソッドを使用できます。各要求の処理は次のように実装されています。
 ... reads the request parameters ...

 synchronized(getLock(request)) {
   IlvManagerView view = getManagerView(request);

   ... handle the request ...  
 }
デフォルトでは、getLock メソッドは毎回新規オブジェクトを返します。つまり、セッションは同期化されていません。