精华帖 (0) :: 良好帖 (5) :: 新手帖 (6) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2011-02-25
楼主,你不要在这里误倒新人
多线程编程中,一般用Vector,而不用ArrayList。 除非你自己喜欢写轮子,要自己加锁。 |
|
返回顶楼 | |
发表时间:2011-02-25
haigui.chen 写道 ironsabre 写道 haigui.chen 写道 谁说Vector线程安全,我和谁急
我觉得你没有真的理解线程安全。 可能是,在put if absent 下面,vector还会是线程安全的么? vector本身是线程安全的,放在哪都是。 但vector本身的线程安全不能保证你使用了vector的应用程序是线程安全的。 懂了吗? |
|
返回顶楼 | |
发表时间:2011-02-25
wwj85523 写道 楼主,你不要在这里误倒新人
多线程编程中,一般用Vector,而不用ArrayList。 除非你自己喜欢写轮子,要自己加锁。 我擦,我都有拿脑袋撞墙的心了。 |
|
返回顶楼 | |
发表时间:2011-02-25
flashing 写道 wwj85523 写道 楼主,你不要在这里误倒新人
多线程编程中,一般用Vector,而不用ArrayList。 除非你自己喜欢写轮子,要自己加锁。 我擦,我都有拿脑袋撞墙的心了。 +1 |
|
返回顶楼 | |
发表时间:2011-02-25
本质区别看源码吧。。。。
|
|
返回顶楼 | |
发表时间:2011-02-25
NanguoCoffee 写道 flashing 写道 wwj85523 写道 楼主,你不要在这里误倒新人
多线程编程中,一般用Vector,而不用ArrayList。 除非你自己喜欢写轮子,要自己加锁。 我擦,我都有拿脑袋撞墙的心了。 +1 +1 hashtable和vecotr,我都快忘记还有这些东西了. 1.5的JUC明明提供了更安全,更简单的方式,为什么还要这些老旧的古董呢? |
|
返回顶楼 | |
发表时间:2011-02-25
NanguoCoffee 写道 LS几位大哥,线程安全的概念是什么呀? 弄清楚没?
我理解的线程概念: 如果某个个类的一个对象,对于能够修改这个对象状态(如add)或者调用其他方法会影响其结果(如get)的任何方法,多线程调用任一方法时,能够保证任意时刻仅有一个线程能执行, 那么这个类就是线程安全的类。 怎么看你这句话都是错的,单CPU有真正意义上的线程"并发"吗? |
|
返回顶楼 | |
发表时间:2011-02-25
ironsabre 写道 haigui.chen 写道 ironsabre 写道 haigui.chen 写道 谁说Vector线程安全,我和谁急
我觉得你没有真的理解线程安全。 可能是,在put if absent 下面,vector还会是线程安全的么? vector本身是线程安全的,放在哪都是。 但vector本身的线程安全不能保证你使用了vector的应用程序是线程安全的。 懂了吗? 还没太懂,同步和线程安全是两个不同的概念... |
|
返回顶楼 | |
发表时间:2011-02-25
Crusader 写道 NanguoCoffee 写道 LS几位大哥,线程安全的概念是什么呀? 弄清楚没?
我理解的线程概念: 如果某个个类的一个对象,对于能够修改这个对象状态(如add)或者调用其他方法会影响其结果(如get)的任何方法,多线程调用任一方法时,能够保证任意时刻仅有一个线程能执行, 那么这个类就是线程安全的类。 怎么看你这句话都是错的,单CPU有真正意义上的线程"并发"吗? 不明白你说的意思。什么叫真正意义上的线程"并发"? 难道你认为N个CPU下同时运行N个线程才叫并发?这种情况我理解为并行。 |
|
返回顶楼 | |
发表时间: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不是。 我不知道你哪儿不懂。 |
|
返回顶楼 | |