精华帖 (0) :: 良好帖 (5) :: 新手帖 (6) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2011-02-25
最后修改:2011-02-25
我觉得你应该说Vector所有的方法是“原子”的,我其实是没懂你脑子里面的“线程安全”怎么定义的...
引用 还没太懂,同步和线程安全是两个不同的概念... 多线程同时直接操作一个Vector,做add操作。不会有报错。 1000个add后,vector里就有1000个数据。 多线程同时直接操作一个ArrayList,做add操作。有可能报错,也有可能出现数据被重写掉。 1000个add后,vector里只有999个数据。或者执行期间有index异常。 Vecotr的所有方法都是线程安全的。ArrayList不是。 我不知道你哪儿不懂。 |
|
返回顶楼 | |
发表时间:2011-02-25
原子和线程安全的区别是什么,你说来听听。
|
|
返回顶楼 | |
发表时间:2011-02-25
ironsabre 写道 原子和线程安全的区别是什么,你说来听听。
嘿嘿,原子的肯定是线程安全的。 线程安全的不一定是原子的。 囧死了,我在说废话~~~~ |
|
返回顶楼 | |
发表时间:2011-02-25
最后修改:2011-02-25
NanguoCoffee 写道 ironsabre 写道 原子和线程安全的区别是什么,你说来听听。
嘿嘿,原子的肯定是线程安全的。 线程安全的不一定是原子的。 囧死了,我在说废话~~~~ 你可以说不是非要数据库才会有事务..... 不是非要hibernate才会有乐观锁 |
|
返回顶楼 | |
发表时间:2011-02-25
抛出异常的爱 写道 NanguoCoffee 写道 ironsabre 写道 原子和线程安全的区别是什么,你说来听听。
嘿嘿,原子的肯定是线程安全的。 线程安全的不一定是原子的。 囧死了,我在说废话~~~~ 你可以说不是非要数据库才会有事务..... 不是非要hibernate才会有乐观锁 一个是制定的规范,一个是根据这个规范的一种实现? |
|
返回顶楼 | |
发表时间:2011-02-26
长见识了,以前确实只知道同步
|
|
返回顶楼 | |
发表时间:2011-02-26
ironsabre 写道 原子和线程安全的区别是什么,你说来听听。
http://en.wikipedia.org/wiki/Thread_safe http://en.wikipedia.org/wiki/Atomicity_(programming) if (!vector.contains(element)) vector.add(element); 这种存在race condition,同步,不安全 |
|
返回顶楼 | |
发表时间:2011-02-28
最后修改:2011-02-28
NanguoCoffee 写道 ironsabre 写道 原子和线程安全的区别是什么,你说来听听。
嘿嘿,原子的肯定是线程安全的。 线程安全的不一定是原子的。 囧死了,我在说废话~~~~ 你能举例说明吗。 我觉得你说的不对,你举出例子来我应该可以反驳你。 |
|
返回顶楼 | |
发表时间:2011-02-28
最后修改:2011-02-28
ironsabre 写道 NanguoCoffee 写道 ironsabre 写道 原子和线程安全的区别是什么,你说来听听。
嘿嘿,原子的肯定是线程安全的。 线程安全的不一定是原子的。 囧死了,我在说废话~~~~ 你能举例说明吗。 我觉得你说的不对,你举出例子来我应该可以反驳你。 ”原子的肯定是线程安全的“ 这句话就不用举例。 “线程安全的不一定是原子的”的例子: String对象,Date对象,Integer, Double.... 这些类貌似有一种叫法:不可变类 |
|
返回顶楼 | |
发表时间:2011-02-28
我要先查一下。
但你的说法跟haigui.chen关于原子的说法是不一样的。 不明白为什么可以说到一起。 haigui.chen说道:我觉得你应该说Vector所有的方法是“原子”的,我其实是没懂你脑子里面的“线程安全”怎么定义的.. 这句话明显应该是错的吧。 |
|
返回顶楼 | |