Java中CAS的应用

Java中用到CAS的地方很多,基本上用到sun.misc.Unsafe这个类的地方都应用了CAS。该类在jdk\src\share\classes\sun\misc目录下。

在java.util.concurrent.atomic包中那些Atomic*,如java.util.concurrent.atomic.AtomicInteger,java.util.concurrent.atomic.AtomicLong,java.util.concurrent.atomic.AtomicReference都用到了CAS以及java.util.concurrent.locks.AbstractQueuedSynchronizer,java.util.concurrent.locks.AbstractQueuedLongSynchronizer
及实现java.util.concurrent.CountDownLatch.Sync,java.util.concurrent.FutureTask.Sync,java.util.concurrent.locks.ReentrantLock,java.util.concurrent.locks.ReentrantLock.FairSync,java.util.concurrent.locks.ReentrantLock.NonfairSync,java.util.concurrent.locks.ReentrantReadWriteLock.Sync,java.util.concurrent.locks.ReentrantReadWriteLock.FairSync,java.util.concurrent.locks.ReentrantReadWriteLock.NonfairSync,java.util.concurrent.Semaphore.Sync,java.util.concurrent.Semaphore.FairSync,java.util.concurrent.Semaphore.NonfairSync中也都都用到了CAS。

猜你喜欢

转载自lobin.iteye.com/blog/2327437