摘要: 高并发场景下,如果需要锁的存在,可以视对锁的需求来处理,比如仅做数值统计,条件翻转,严格串行,逻辑唯一,允许重试等。不同的情况有不同的处理方式。 数值统计&条件翻转 针对数值统计,可以依赖Atomic下的各种计数器来实现。但是,如果竞争线程非常多,竞争激烈的场合,还可以进一步使用比如LongAdde 阅读全文
posted @ 2020-11-10 16:22 飞昂之雪 阅读(275) 评论(0) 推荐(0) 编辑
摘要: Synchronized是jvm提供支持的锁,和Lock有很多区别。 针对Synchronized,jvm支持不同层次的实现。按竞争烈度来说,Synchronized会有偏向锁,轻量级锁,重量级锁等3种类型。 针对对象而言,在对象头上的Mark word上会存储锁信息(包括:偏向线程ID、偏向时间戳 阅读全文
posted @ 2020-11-10 15:30 飞昂之雪 阅读(107) 评论(0) 推荐(0) 编辑