我已经读过servlet中的代码可以与synchronized块同步.但是,我还读过,虽然servlet容器中通常只有一个servlet实例可以保留一个实例池.当然这意味着同步块不能保证工作,因为您不知道请求线程将选择哪个实例?
解决方法:
规范(3.0)的2.2节说:
For a servlet not hosted in a distributed environment (the default),
the servlet container must use only one instance per servlet
declaration
因此,如果容器使用实例池,则违反规范.我不明白为什么容器会这样做,因为每个servlet开发人员都知道多个线程可以同时访问servlet,因此servlet必须是线程安全的.