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

arrayList和Vector的比较,都说Vector是线程同步的,有必要吗?该怎么处理

2012-04-09 
arrayList和Vector的比较,都说Vector是线程同步的,有必要吗?我看了一个贴子讨论,很多人都说Vector是线程同

arrayList和Vector的比较,都说Vector是线程同步的,有必要吗?
我看了一个贴子讨论,很多人都说Vector是线程同步的,需要多线程的情况下用它。当然arrayList也可以支持多线程。

我想问的是,多线程的情况下,如果自己有一个vector对象会被从个线程访问,自己直接对访问它的方法做同步不是更好么?
如果所有可能访问它的方法都做了线程同步,而vector的方法本身也做了同步,此时是不是多此一举了? 但如果有别的对象也需要多线程访问,方法都做了线程同步,就留一个vector对象不去管,程序看起来会不会很奇怪?

[解决办法]
现在更多使用 ArrayList,vector不被推荐使用了吧?
[解决办法]
Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的。
Vector本身为了多线程访问,就已经做了同步的操作,例如锁操作。当线程再为了Vector做同步时,显得多此一举。如果多个线程对这个Vector的同步没做好,有可能出现死锁等问题。所以当多线程访问Vector时,无需再考虑同步的问题。
对于你的3个问题,回答如下:
1. 可以,但不是更好。
2. 是。
3. 不会。

热点排行