首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于多线程访问Vector解决办法

2013-10-13 
关于多线程访问Vector有一个线程要访问Vector对象:for(int i0iv.size()i++) {Object objv.elementAt(

关于多线程访问Vector
有一个线程要访问Vector对象:
for(int i=0;i<v.size();i++)
 {Object obj=v.elementAt(i);
  ...... 
 }

另一个线程中: v.removeElementAt(3)

问会有什么问题?
[解决办法]
Vector本身是相对线程安全的,不会有什么大问题。

但是你这里Object obj=v.elementAt(i);之后的部分访问的obj对象有可能已经从Vector中删除了。
[解决办法]
最后可能会少一个数据,获取出来的数据不全
[解决办法]
1. 获取的数据有可能未必是自己想要的
2. 删除可能会报错,v未必有三个对象
[解决办法]
Vector 是一个线性安全的collection应该不会有问题吧

热点排行