JUC
文章平均质量分 80
逐渐呆滞
黑奴
展开
-
ReentrantLock原理——公平锁与条件变量实现原理
每个条件变量其实就对应着一个等待队列,其实现类是 ConditionObject。原创 2023-04-09 08:20:15 · 146 阅读 · 0 评论 -
LinkedBlockingQueue原理
主要列举 LinkedBlockingQueue 与 ArrayBlockingQueue 的性能比较。Dummy 节点用来占位,item 为 null。高明之处在于用了两把锁和 dummy 节点。原创 2023-04-23 16:48:36 · 650 阅读 · 0 评论 -
Java8 ConcurrentHashMap源码解析
可以看到实现了懒惰初始化,在构造方法中仅仅计算了 table 的大小,以后在第一次使用时才会真正创建。原创 2023-04-15 20:15:05 · 446 阅读 · 0 评论 -
偏向锁撤销
1> 测试延迟特性2> 测试偏向锁利用 jol 第三方工具来查看对象头信息处于偏向锁的对象解锁后,线程 id 仍存储于对象头中。3> 测试禁用在上面测试代码运行时在添加 VM 参数 -XX:-UseBiasedLocking 禁用偏向锁。4> 测试 hashCode。原创 2023-03-11 16:20:20 · 651 阅读 · 0 评论 -
synchronized原理(轻量级,锁膨胀,自旋,偏向锁)
如果一个对象虽然有多线程要加锁,但加锁的时间是错开的(也就是没有竞争),那么可以使用轻量级锁来优化。轻量级锁对使用者是透明的,即语法仍然是。原创 2023-03-04 17:10:39 · 831 阅读 · 0 评论