1,Servlet容器是以单实例多线程的形式调用一个servlet的。Servlet容器通过一个线程池来调用servlet实例。
2,类变量和实例变量是非线程安全的,所以在servelt里要注意尽量少用,或者只用只读的类变量跟实例变量。
3,ServletContext,HttpSession类的getAttribute()是非线程安全的。为避免线程安全问题,可对其进行同步synchronized访问,但会有排队性能问题。
4,Servlet本身就是多线程的,尽量不要在servlet里再创建线程类,这样会造成管理的复杂性。
5,Servlet访问外部对象,并进行修改操作时,要加锁,做到互斥访问。
6,在多线程的环境中要使用同步的集合类。例如用Vector代替ArrayList,Hashtable代替HashMap。
本文探讨了Servlet容器的工作机制、线程安全问题及如何优化Servlet代码以提高性能,重点介绍了类变量与实例变量的使用注意事项、多线程访问控制、同步集合类的选择等关键点。
1610

被折叠的 条评论
为什么被折叠?



