无锁算法
2020-06-14 本文已影响0人
gstsyyb
一、基于 CAS 的加锁实现
采用硬件提供的 cas 机制实现加锁,无需内核辅助(普通的加锁需借助操作系统,此时存在内核态和用户态的交互,代价过高)
LockSupport.park、LockSupport.unpark方法使用,CAS 机制的缺点:ABA 问题通过类似乐观锁的机制解决,就是加一个时间戳,sun.misc.Unsafe提供了一些底层操作指令
image.png
一、基于 CAS 的加锁实现
采用硬件提供的 cas 机制实现加锁,无需内核辅助(普通的加锁需借助操作系统,此时存在内核态和用户态的交互,代价过高)
LockSupport.park、LockSupport.unpark方法使用,CAS 机制的缺点:ABA 问题通过类似乐观锁的机制解决,就是加一个时间戳,sun.misc.Unsafe提供了一些底层操作指令
image.png