求教关于线程操作jsp的application的问题
时间:2011-08-25
来源:互联网
我的servlet会创建一个静态的Vector 并往这个Vector里加东西,最后把这个Vector塞到application里保存
另外,servlet会起一个线程,从application里把这个Vector取出来,删一些东西,再把这个Vector塞回application里
我知道Vector是不用加锁的,但是application不是线程安全的
这里要怎么处理,在存取application的时候都用synchronized方法块括起来吗?
求教高手们,好人一生平安
另外,servlet会起一个线程,从application里把这个Vector取出来,删一些东西,再把这个Vector塞回application里
我知道Vector是不用加锁的,但是application不是线程安全的
这里要怎么处理,在存取application的时候都用synchronized方法块括起来吗?
求教高手们,好人一生平安
作者: jcwmssj 发布时间: 2011-08-25
1,从application里把这个Vector取出来,
2,删一些东西,
3,再把这个Vector塞回application里
其中第3步不需要,不解释
出现多线程同步的问题在于在1,2步时,可能出现多个线程同时进行添加或者修改,即线程1添加完1个对象之后,线程2又添加1个对象,然后,线程1又删除1个对象。这种情况。
如果你非要进行同步,这样写
synchronized(你的vector){
vector操作
}
这样可以保证线程同步,因为全application共享同一个vector
2,删一些东西,
3,再把这个Vector塞回application里
其中第3步不需要,不解释
出现多线程同步的问题在于在1,2步时,可能出现多个线程同时进行添加或者修改,即线程1添加完1个对象之后,线程2又添加1个对象,然后,线程1又删除1个对象。这种情况。
如果你非要进行同步,这样写
synchronized(你的vector){
vector操作
}
这样可以保证线程同步,因为全application共享同一个vector
作者: Fly_m 发布时间: 2011-08-25
引用 1 楼 fly_m 的回复:
1,从application里把这个Vector取出来,
2,删一些东西,
3,再把这个Vector塞回application里
其中第3步不需要,不解释
出现多线程同步的问题在于在1,2步时,可能出现多个线程同时进行添加或者修改,即线程1添加完1个对象之后,线程2又添加1个对象,然后,线程1又删除1个对象。这种情况。
如果你非要进行同步,这样写
synchronized(……
1,从application里把这个Vector取出来,
2,删一些东西,
3,再把这个Vector塞回application里
其中第3步不需要,不解释
出现多线程同步的问题在于在1,2步时,可能出现多个线程同时进行添加或者修改,即线程1添加完1个对象之后,线程2又添加1个对象,然后,线程1又删除1个对象。这种情况。
如果你非要进行同步,这样写
synchronized(……
刚才又画了个图 想了了一下,再把我的问题梳理一下:
从服务器启动开始,内存中就存在了一个application
本身servlet的调用也是一个线程,那么就有一个a线程负责给application里加东西
我另外会起一个线程b线程负责从application里删东西
那么这两个线程对application操作的地方都需要加上synchronized
就能保证a线程操作的时候b线程等在外面
而b线程操作的时候a线程等在外面。
应该是这样的吧
作者: jcwmssj 发布时间: 2011-08-25
貌似没有synchronized,因为Vector本身就是线程安全的,楼主考虑多了吧?
作者: heweiAndPippo 发布时间: 2011-08-25
引用 3 楼 heweiandpippo 的回复:
貌似没有synchronized,因为Vector本身就是线程安全的,楼主考虑多了吧?
貌似没有synchronized,因为Vector本身就是线程安全的,楼主考虑多了吧?
你好 我的两个线程并没有直接操作Vector 而是操作的ServletContext application(Vector 被装进application了)
在两个线程分别对application分别进行setAttribute和getAttribute时,我想对他们的这种操作加上synchronized 应该是对的吧
作者: jcwmssj 发布时间: 2011-08-25
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28