论坛首页 Java企业应用论坛

Vector和ArrayList的本质区别到底是什么?

浏览 33312 次
精华帖 (0) :: 良好帖 (5) :: 新手帖 (6) :: 隐藏帖 (1)
作者 正文
   发表时间:2011-02-25  
楼主,你不要在这里误倒新人
多线程编程中,一般用Vector,而不用ArrayList。
除非你自己喜欢写轮子,要自己加锁。
0 请登录后投票
   发表时间:2011-02-25  
haigui.chen 写道
ironsabre 写道
haigui.chen 写道
谁说Vector线程安全,我和谁急

我觉得你没有真的理解线程安全。

可能是,在put if absent 下面,vector还会是线程安全的么?


vector本身是线程安全的,放在哪都是。
但vector本身的线程安全不能保证你使用了vector的应用程序是线程安全的。
懂了吗?
0 请登录后投票
   发表时间:2011-02-25  
wwj85523 写道
楼主,你不要在这里误倒新人
多线程编程中,一般用Vector,而不用ArrayList。
除非你自己喜欢写轮子,要自己加锁。


我擦,我都有拿脑袋撞墙的心了。
0 请登录后投票
   发表时间:2011-02-25  
flashing 写道
wwj85523 写道
楼主,你不要在这里误倒新人
多线程编程中,一般用Vector,而不用ArrayList。
除非你自己喜欢写轮子,要自己加锁。


我擦,我都有拿脑袋撞墙的心了。

+1
0 请登录后投票
   发表时间:2011-02-25  
本质区别看源码吧。。。。
0 请登录后投票
   发表时间:2011-02-25  
NanguoCoffee 写道
flashing 写道
wwj85523 写道
楼主,你不要在这里误倒新人
多线程编程中,一般用Vector,而不用ArrayList。
除非你自己喜欢写轮子,要自己加锁。


我擦,我都有拿脑袋撞墙的心了。

+1

+1
hashtable和vecotr,我都快忘记还有这些东西了.
1.5的JUC明明提供了更安全,更简单的方式,为什么还要这些老旧的古董呢?
0 请登录后投票
   发表时间:2011-02-25  
NanguoCoffee 写道
LS几位大哥,线程安全的概念是什么呀? 弄清楚没?
我理解的线程概念:
如果某个个类的一个对象,对于能够修改这个对象状态(如add)或者调用其他方法会影响其结果(如get)的任何方法,多线程调用任一方法时,能够保证任意时刻仅有一个线程能执行,
那么这个类就是线程安全的类。


怎么看你这句话都是错的,单CPU有真正意义上的线程"并发"吗?
0 请登录后投票
   发表时间:2011-02-25  
ironsabre 写道
haigui.chen 写道
ironsabre 写道
haigui.chen 写道
谁说Vector线程安全,我和谁急

我觉得你没有真的理解线程安全。

可能是,在put if absent 下面,vector还会是线程安全的么?


vector本身是线程安全的,放在哪都是。
但vector本身的线程安全不能保证你使用了vector的应用程序是线程安全的。
懂了吗?

还没太懂,同步和线程安全是两个不同的概念...
0 请登录后投票
   发表时间:2011-02-25  
Crusader 写道
NanguoCoffee 写道
LS几位大哥,线程安全的概念是什么呀? 弄清楚没?
我理解的线程概念:
如果某个个类的一个对象,对于能够修改这个对象状态(如add)或者调用其他方法会影响其结果(如get)的任何方法,多线程调用任一方法时,能够保证任意时刻仅有一个线程能执行,
那么这个类就是线程安全的类。


怎么看你这句话都是错的,单CPU有真正意义上的线程"并发"吗?


不明白你说的意思。什么叫真正意义上的线程"并发"?
难道你认为N个CPU下同时运行N个线程才叫并发?这种情况我理解为并行。
0 请登录后投票
   发表时间:2011-02-25   最后修改:2011-02-25
haigui.chen 写道
ironsabre 写道
haigui.chen 写道
ironsabre 写道
haigui.chen 写道
谁说Vector线程安全,我和谁急

我觉得你没有真的理解线程安全。

可能是,在put if absent 下面,vector还会是线程安全的么?


vector本身是线程安全的,放在哪都是。
但vector本身的线程安全不能保证你使用了vector的应用程序是线程安全的。
懂了吗?

还没太懂,同步和线程安全是两个不同的概念...


多线程同时直接操作一个Vector,做add操作。不会有报错。
1000个add后,vector里就有1000个数据。

多线程同时直接操作一个ArrayList,做add操作。有可能报错,也有可能出现数据被重写掉。
1000个add后,vector里可能只有999个数据。或者执行期间有index异常。

Vecotr的所有方法都是线程安全的。ArrayList不是。

我不知道你哪儿不懂。

0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics