日期:2014-05-17  浏览次数:20667 次

求教关于线程操作jsp的application的问题
我的servlet会创建一个静态的Vector 并往这个Vector里加东西,最后把这个Vector塞到application里保存
另外,servlet会起一个线程,从application里把这个Vector取出来,删一些东西,再把这个Vector塞回application里

我知道Vector是不用加锁的,但是application不是线程安全的

这里要怎么处理,在存取application的时候都用synchronized方法块括起来吗?

求教高手们,好人一生平安

------解决方案--------------------
1,从application里把这个Vector取出来,
2,删一些东西,
3,再把这个Vector塞回application里

其中第3步不需要,不解释

出现多线程同步的问题在于在1,2步时,可能出现多个线程同时进行添加或者修改,即线程1添加完1个对象之后,线程2又添加1个对象,然后,线程1又删除1个对象。这种情况。

如果你非要进行同步,这样写
synchronized(你的vector){
vector操作
}

这样可以保证线程同步,因为全application共享同一个vector

------解决方案--------------------
貌似没有synchronized,因为Vector本身就是线程安全的,楼主考虑多了吧?