写点什么

分布式架构 - 锁原语 CAS 与各类锁

作者:littleFuBaby
  • 2023-05-16
    北京
  • 本文字数:332 字

    阅读完需:约 1 分钟

一、锁原语 CAS


CAS(V,E,N)


• V 表示要更新的变量• E 表示预期值• N 表示新值


如果 V 值等于 E 值,则将 V 的值设为 N,若 V 值和 E 值不同,什么都不做。CAS 是一种系统原语,原语的执行必须是连续的,在执行过程中不允许被中断。


二、偏向锁、轻量级锁、重量级锁


偏向锁: 指一段同步代码一直被一个线程所访问,那么该线程会自动获取锁,降低获取锁的代价
轻量级锁: 指当锁是偏向锁时,被另一个线程所访问,偏向锁就会升级为轻量级锁,其他线程会通过自旋(CAS)的形式尝试获取锁,不会阻塞,提高性能 重量级锁: 指当锁是轻量级锁时,另一个线程虽然自旋,但自旋不会一直持续下去,当自旋到一定次数时,还没获取到锁,就会进入阻塞,该锁膨胀为重量级锁,重量级锁会让其他申请的线程进入阻塞,性能降低
复制代码


用户头像

littleFuBaby

关注

强准备+强信念+强执行 2019-11-21 加入

以前是T型人才,当下是π型人才,未来是梳子型人才

评论

发布
暂无评论
分布式架构-锁原语CAS与各类锁_littleFuBaby_InfoQ写作社区