计算机等级 > 二级考试 > Java语言程序设计 > 考试辅导 > 文章内容

全国计算机等级考试二级Java重点内容(37)

2016-11-2编辑:ljnbset

  servlet的线程安全问题

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

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

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

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

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

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

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

  生线程安全问题。

  (2)如何解决?

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

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

  代码加锁。

  b, 让servlet实现SingleThreadModel接口。

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

  不建议使用。

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

全国计算机等级考试二级Java重点内容(36)

热点推荐

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