
偏向锁、轻量级锁、重量级锁、synchronized、Lock、ReentrantLock、读写锁、自旋锁、乐观悲观锁古风记忆适配面试。总起并发多线程争疆场资源抢夺起刀枪。 锁分乐观与悲观轻重偏向各行藏。 隐显两套把门户自旋忙等或眠藏。 取舍看清场景事莫教死锁困四方。一、悲观锁 vs 乐观锁plaintext悲观预设人来抢上锁拒客守仓墙。 synchronized、ReentrantLock 归此壤。 乐观不信人相攘版本号上辨兴亡。 冲突再做重试计不加真锁性飞扬。 CAS为刃行其事版本戳记辨沧桑。记忆悲观锁默认一定会竞争先上锁再干活乐观锁默认没人抢不加锁CAS / 版本号检测冲突失败重试。二、synchronized内置隐式锁锁升级四态无锁 → 偏向锁 → 轻量级锁 (自旋) → 重量级锁只能升级不能降级plaintext初来无锁本寻常单线程启偏向章。 偏爱此线专相守省去加锁往复忙。 多线相争冲突起偏向褪去换轻装。 自旋循环空轮转不肯休眠待曙光。 自旋耗尽CPU量竞争激烈换重疆。 向OS借互斥量线程阻塞入眠乡。 升级单向无归路一旦沉渊难复扬。无锁无竞争偏向锁单线程优先消除 CAS 开销轻量级锁多线程交替自旋不阻塞耗 CPU重量级锁内核互斥锁线程阻塞挂起耗上下文切换口诀单偏交轻争重重只升不降不可逆三、synchronized vs ReentrantLockplaintextsynchronized隐式章jvm之内铸铜墙。 自动上锁自动放异常解锁不慌张。 不可中断非公平功能朴素少锋芒。 ReentrantLock显式枪手动开闭要谨详。 可中断来可公平超时等待计时长。 条件队列多等待功能繁复力刚强。 锁忘释放生危祸finally内把锁偿。表格要点诗意提炼synchronized隐式、自动释放、不可中断、非公平、JVM 管控ReentrantLock显式 lock/unlockfinally 释放支持公平 / 非公平、可中断、超时、Condition四、读写锁 ReentrantReadWriteLockplaintext读多写少别匆忙读写分锁各分疆。 读锁共享千客访写锁独占守高墙。 读可同来写独往写来读客尽潜藏。 警惕写锁饥饿患久读无写祸根藏。记忆读共享、写互斥适合读多写少会写饥饿。五、自旋锁plaintext自旋不肯入眠床循环轮询盼锁光。 少去切换上下文CPU消耗暗自伤。 竞争微弱方可用激烈场景不可扬。不阻塞空循环等锁竞争大 CPU 暴涨。六、可重入锁plaintext同线再入旧锁堂重入不把自身伤。 计数增减知进退释放匹配莫相忘。 syn与Reentrant二者皆具此所长。同一个线程可以多次获取同一把锁计数器加减。七、公平锁 非公平锁plaintext公平排队依次上先来先得不越墙。 吞吐平平秩序稳。 非公闯锁不排岗抢占先机意气扬。 吞吐量高是长处线程饥饿暗中藏。 synchronized非公相Lock可择两规章。公平排队FIFO吞吐低非公平抢锁不排队吞吐高可能饥饿八、死锁四句plaintext互斥占有不释放请求保持不肯降。 不可剥夺无退让循环等待结成网。 四者齐聚死锁酿。死锁四大条件互斥、请求并持有、不可剥夺、循环等待。完整背诵七言诗plaintext并发争访起仓皇乐观悲观两阵场。 悲观先锁防侵扰乐观CAS辨兴亡。 syn隐锁jvm藏四级升阶不可逆。 单线程处偏向启交替相争轻量扬。 自旋耗尽竞争烈重量级锁入眠乡。 ReentrantLock显锋芒手动开闭要提防。 可中断还可超时公平队列可裁量。 finally中释枷锁遗忘释放祸难防。 读写分锁分疆场读共写独理昭彰。 读多写少宜使用写锁饥饿要提防。 自旋轮询不眠床竞争微弱性能强。 重入计数同线进公平非公细思量。 互斥持守难夺让循环等待死锁殇。 选锁要看场景事没有一锁胜八方。极简面试速记口诀乐观 CAS悲观上锁 syn 四态无‑偏‑轻‑重只升不降 syn 隐自动Lock 显手动可中断、公平、超时 Lock 强 读共享写独占读写锁适配读多场景 自旋耗 CPU重入计数扛 公平排队非公抢占四凑齐全死锁酿。