188-1.10.4-线程池-共享值-副本值-原子性
volatile--能保证最新,不能保证原子性
易变动的
==
原子性--这不是跟事务一样的原理吗?
synchronized--可以保证原子性,因为有锁,所有线程共用锁--悲观锁
Atomic
自旋 + CAS算法
携带旧值,修改后,先对比旧值,如果旧值相同,说明无其他操作,直接修改
如果旧值不同,说明有其他操作,放弃修改,重新获取,携带旧值--自旋
--乐观锁
CountDownLantch
Semaphore
volatile--能保证最新,不能保证原子性
易变动的
==
原子性--这不是跟事务一样的原理吗?
synchronized--可以保证原子性,因为有锁,所有线程共用锁--悲观锁
Atomic
自旋 + CAS算法
携带旧值,修改后,先对比旧值,如果旧值相同,说明无其他操作,直接修改
如果旧值不同,说明有其他操作,放弃修改,重新获取,携带旧值--自旋
--乐观锁
CountDownLantch
Semaphore