- 博客(3)
- 资源 (4)
- 收藏
- 关注
原创 LockSupport.park() 原理
先来用一个最简单的代码演示的基本使用unpark()park():让线程暂停等待unpark(线程):让指定的线程继续运行。
2025-09-24 17:42:12
617
原创 join() 方法底层原理
本文介绍了Java中Thread类的join()方法及其底层原理。join()用于让当前线程等待目标线程执行完毕,通过在目标线程对象上获取同步锁并调用wait()实现等待。当目标线程结束时,JVM会自动调用notifyAll()唤醒等待线程。底层实现包含循环检查isAlive()防止虚假唤醒,并支持超时机制。文章还分析了源码关键点,包括同步锁、等待条件和唤醒机制,并给出了执行流程示例和注意事项(如中断处理、避免自调用死锁等)。该机制确保了线程间的有序执行。
2025-09-24 16:11:56
458
原创 synchronized中偏向锁的“撤销”、“重偏向”和“批量撤销”
一个类的对象默认是可偏向的。偶尔一次竞争 ->单独撤销(变无锁或升级轻量级锁)。检测到“交替访问”模式 ->批量重偏向(优化撤销过程,直接转让偏向权)。撤销次数过多 ->批量撤销(判定该类不适合偏向锁,新对象直接禁用偏向)。机制触发条件目的影响范围撤销一个线程尝试获取被另一个线程偏向的锁处理单次的锁竞争单个锁对象重偏向检测到线程交替访问同一对象但无冲突的模式优化频繁交替访问场景下的撤销开销一个类的所有对象(通过epoch)批量撤销某个类的锁撤销次数达到阈值。
2025-09-24 12:06:41
718
tables_mysql.sql
2020-03-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅