# 1. JEP 491 在 JDK 24 解决 synchronized pin 的方法 A 增加载体线程 B 移除监视器 C 虚拟线程阻塞时释放监视器、恢复时重获 ✓ 正确答案 D 禁用 synchronized
# 2. Java 25 虚拟线程下 synchronized 性能优化结论 A 仍严重钉住 B JEP 491 消除钉住,性能与 ReentrantLock 相当,可作默认 ✓ 正确答案 C 必须用 ReentrantLock D synchronized 不可用
# 4. Thread.holdsLock 与死锁探测 A jstack/JMX findDeadlockedThreads ✓ 正确答案 B Thread.holdsLock C Thread.sleep D Thread.yield
# 6. 轻量级锁(Lightweight Locking)、偏向锁(Biased Locking) A 都是无竞争优化,偏向锁省 CAS、轻量锁用 CAS ✓ 正确答案 B 都阻塞 C 都需 OS 调度 D 竞态相同
# 8. synchronized 关键字的底层实现(Monitor、ACC_SYNCHRONIZED) A 普通调用 B 无指令 C monitorenter/monitorexit 指令 ✓ 正确答案 D 仅标志
# 9. 对象头(Object Header)的 Mark Word 在不同锁状态下的位图布局 A hashcode B 2 位 lock 标志(00 轻量/01 无锁偏向/10 重量/11 GC) ✓ 正确答案 C 无 D age
# 10. 死锁检测工具(jstack/jcmd Thread.print)在生产环境的采样与分析策略 A 多次采样 + 分析锁持有/等待链 ✓ 正确答案 B 单次 dump C 重启 D 只看 CPU
# 14. 读写锁在读多写少与写饥饿场景下的表现如何评估,何时应改用 StampedLock 或公平策略? A 非公平读写锁 B 无限读锁 C StampedLock 乐观读或公平策略 ✓ 正确答案 D 无
# 19. LockSupport.park/unpark 与 Object.wait 的差异 A unpark 可先于 park,许可缓存不丢失唤醒,且无需持锁 ✓ 正确答案 B wait 更灵活 C park 必须持锁 D 相同
# 20. JDK 24+(JEP 491)消除 synchronized 钉住后,虚拟线程下 synchronized 与 ReentrantLock 的取舍 A 都禁止 B ReentrantLock 总是 C 无锁 D synchronized(默认),需要高级能力时用 ReentrantLock ✓ 正确答案
# 22. JEP 491 如何解决虚拟线程在 synchronized 块上的钉住(pinning)问题 A 禁用 synchronized B 阻塞时释放监视器、恢复时重获 ✓ 正确答案 C 增加载体线程 D 移除监视器