java中sychronized锁为悲观锁,未获得锁则阻塞线程,线程挂起与运行中需要性能开销
CAS乐观锁 compareAndSwap ,获得锁失败则自旋,有重试次数,在竞争激烈的情况下性能不如悲观锁,jdk8引入了Longadder 分段锁,原理是在竞争激烈的情况下,在cells数组中空的位置进行CAS操作,最后相加获得结果,cells数组初始大小为2,每次扩容2倍,直至超过cpu核心数
java中sychronized锁为悲观锁,未获得锁则阻塞线程,线程挂起与运行中需要性能开销
CAS乐观锁 compareAndSwap ,获得锁失败则自旋,有重试次数,在竞争激烈的情况下性能不如悲观锁,jdk8引入了Longadder 分段锁,原理是在竞争激烈的情况下,在cells数组中空的位置进行CAS操作,最后相加获得结果,cells数组初始大小为2,每次扩容2倍,直至超过cpu核心数