线程模型
image.png

特点

单例

只有一个Servlet实例对象

多线程

同时处理数量和线程池大小有关系

线程不安全

没有默认加锁。

将其线程安全

变量的线程安全

参数变量本地化
使用同步块synchronized【尽可能缩小范围,不要在service方法上使用,不然消耗性能】

属性的线程安全

ServletContext是线程不安全的,可以多线程同时读写;
HttpSession理论上线程安全;
ServletRequest是线程安全的,只处理同一个请求,智能在同一个线程中被访问

避免在Servlet中创建线程

多个Servlet访问外部对象加锁

尽量避免使用实例变量