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

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

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

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

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


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

  • 相关阅读:
    cuda cdnn 安装
    神经网络的例子
    理解pytorch几个高级选择函数(如gather)
    opencv 膨胀和腐蚀
    PyPDF2
    百度ocr
    opencv 代码集合
    tesseract cuda pytorch安装
    Vue路由钩子 afterEach beforeEach区别
    (转载)中文区位码、国标码、机内码、输入码、字形码
  • 原文地址:https://www.cnblogs.com/oversea201405/p/3752168.html
Copyright © 2011-2022 走看看