FWQ
使用 volatile 解决交替打印 FooBar 遇到卡死问题的根本原因是什么?
多线程交替打印 foobar 遇到卡死问题的解决办法 问题描述 在使用 1115 题「交替打印 foobar」时,打算使用 2 个 volatile boolean 变量控制多线程逻辑,却遇到了卡死在 while 循环中的问题。 问题分析 使用 volatile 变量不会指令重排序,但仍然卡死的原因在于 while 循环造成的「忙等待」。线程持续占用 cpu 资源,导致无法得到满足条件时的唤醒。 解决方案:使用 wt() 和 notify() 为了解决这个问题,可以考虑使用…