servlet的线程安全

 

线程安全的类是那些?(多选)

a.webwork 1.x框架中的action 处理类

b.struts1.x 框架中的action处理类

c.普通的Servlet

d.普通的Filter

 

Servlet是以多线程的方式工作的,Servlet可以同时处理多个请求。作为开发人员,需要注意Servlet成员变量的线程 安全,在doGet()、doPost()中的局部域变量是线程安全的,而Servlet的成员变量则有线程安全的隐患。所以除非你有意需要应用这种特 性,在一般情况下,不宜将一些可改写的变量定义成Servlet的成员变量,否则一定要采取线程同步的措施确保线程安全。那么怎样才能是Servlet安全呢,凡是多个线程可以共享的就不要使用(实例变量+类变量),就这么简单.也可以使用synchronized同步方法,但是这样效率不高,还可以使用单线程模型,这样的话效率就更低了

WebWork Actions 为每个请求初始化一个实例, 这样就解决了线程安全的问题

struts中的action本质是个轻量级的servlet,Filter也是个特殊的servlet,因此答案为a

 

你可能感兴趣的:(servlet的线程安全)