Sha*_*ggy 2 java concurrency multithreading
我最近遇到了java.util.concurrent.atomic包中的原子类.据我所知,不可变类本质上是默认的线程安全,所以我们不需要同步它们.后来我才知道Integer,Boolean,Character等包装类本质上是不可变的,为什么我们需要像AtomicInteger或AtomicLong这样的Atomic*类.另外,请解释什么是AtomicReference.
Dan*_*den 6
原子类是可变的,但在修改方面具有强大的内存一致性保证.因此它们与不可变包装类有不同的用途.
这些Atomic*类的真正优点是它们公开了一种原子比较和交换方法,这对于实现无锁算法非常有用.
Atomic*
像许多中级到高级并发工具一样,如果你无法想象为什么你需要这样的东西,那么你可能不应该尝试使用它们.如果你坚持不变性或在任何地方显式锁定,那么你可能不需要原子.
归档时间:
9 年,2 月 前
查看次数:
1356 次
最近记录: