zoukankan      html  css  js  c++  java
  • 玩转Web之servlet(五)---- 怎样解决servlet的线程安全问题

    servlet默认是存在线程安全问题的,但是说白了,servlet的线程安全问题实际上就是多线程的线程安全问题,因为servlet恰巧是一个多线程才会出现安全性问题。

    浏览器每次通过http协议去提交请求,都会实例化一个servlet对象,即产生一个线程,如果他们操作的是同一个对象,应该把该变量定义成实例变量,但这就可能发生线程不安全的问题。下面举个简单的例子:

     张三看到仓库里有3件物品,他要去拿两件,但这时李四也来了,抢先他一步拿了两件物品,当张三拿的时候,仓库根本无法提供给他两件物品。这就是线程不安全。

    这种情况下应该使用synchronized加锁装置保证同一时刻只有一个线程运行,只有当这个线程运行完并释放锁,下一个线程才能运行。


    还有一种情况是多个用户操作的不是同一个变量,这时就应该将变量定义为局部变量,他们各自操作各自的对象,各个线程之间不会相互干扰,也不会产生线程安全性问题。

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    15 手写数字识别-小数据集
    14 深度学习-卷积
    5.线性回归算法
    9、主成分分析
    8、特征选择
    4.K均值算法--应用
    6.逻辑回归
    12.朴素贝叶斯-垃圾邮件分类
    13、垃圾邮件2
    大数据应用期末总评
  • 原文地址:https://www.cnblogs.com/dingxiaoyue/p/4931813.html
Copyright © 2011-2022 走看看