在我读过的大多数讨论中,它表明使属性原子不能保证它是线程安全的,它只是保证返回的值不会是一个对象写入它而另一个对象的垃圾.试图同时阅读它.
我理解这不是线程安全的,因为第三个对象可能正在编写它,而访问它的对象不会被垃圾回收,但是当多个对象同时写入它时,它不能完全确定它将返回哪个值时间,它可能会得到他们的任何价值观.
因此,当我们说它不会返回垃圾时,垃圾是否意味着如果一个对象是非原子的并且一个对象试图访问它而另一个对象正在写入它,那么它可能会在写入中间得到结果,并且只能获得写入所带来的部分不完整版本的更改?这就是"垃圾"在这个意义上意味着什么,以及什么原子属性有助于防止?
我已经看到了这个问题:
原子和非原子属性之间有什么区别?
我明白这@atomic不保证线程安全,我必须使用其他机制(例如@synchronized)来实现.在此基础上,我不知道还确切地时使用@atomic的属性.我想知道用例使用的@atomic孤独.