Java 线程 - 如何检测是否存在活锁

问题描述

Good example of livelock? 给出了活锁的一个很好的例子,它在编写花哨的代码以避免死锁情况时发生。线程获取锁A,然后尝试获取锁B。如果锁B未空闲,则释放锁A,然后在随机时间后获取锁A并再次尝试获取锁B。
我的问题是,我有一个有很多线程的运行代码。如何检测是否存在活锁情况,哪些线程是活锁?
有人说没有工具支持。在哪种情况下,我们将永远与活锁一起生活?我想至少应该可以通过读取线程转储来手动检测? 是否有可能检测到是否存在活锁,以及它发生在哪里? 是否可以使用工具,或 vm arg,或某种调试查看我的应用是否处于活锁状态?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)