编程开发 > JAVA > 文章内容

java基础知识总结(169)

2016-9-27编辑:ljnbset

servlet的线程安全问题

        (1)产生线程安全问题的原因:

                 默认情况下,某个Servlet在容器当中,只有一个

        实例(不管有多少个请求)。

                 如果有多个请求到达容器,容器会启动多个线程

        来处理请求,此时,就有可能多个线程会同时访问

        某个servlet实例,如果这些线程访问了线程不安全的

        资源(比如修改了servlet的某个属性值),就会产

        生线程安全问题。

        (2)如何解决?

                 a, 使用synchronized加锁,不要对整个

                 service方法加锁,而是对访问临界资源的

                 代码加锁。

                 b, 让servlet实现SingleThreadModel接口。

         容器会为实现了这个接口的servlet创建多个实例。

         不建议使用。

                c, 尽量避免对servlet属性值进行修改。

java基础知识总结(168)

热点推荐

登录注册
触屏版电脑版网站地图