CAS与synchronized的使用情景

简单的来讲CAS适用于写比较少的状况下(多读场景,冲突通常较少),synchronized适用于写比较多的状况下(多写场景,冲突通常较多)性能

1.对于资源竞争较少(线程冲突较轻)的状况,使用synchronized同步锁进行线程阻塞和唤醒切换以及用户态内核态间的切换操做额外浪费消耗cpu资源;而CAS基于硬件实现,不须要进入内核,不须要切换线程,操做自旋概率较少,所以能够得到更高的性能。spa

2.对于资源竞争严重(线程冲突严重)的状况,CAS自旋的几率会比较大,从而浪费更多的CPU资源,效率低于synchronized。线程

相关文章
相关标签/搜索