Java アプリケーションでまた別のデッドロックが発生し、将来の潜在的なデッドロックを検出する方法について考え始めました。これを行う方法についてはアイデアがありましたが、ほとんど単純すぎるようです。
それについての人の意見を聞きたいです。
典型的なデータセットを使用して、テスト環境でアプリケーションを数時間実行する予定です。
アプリケーションでバイトコード操作を実行して、ロックを取得するたびに (同期ブロックに入るなど)、ロックの詳細を ThreadLocal リストに追加することは可能だと思います。
後で、すべてのスレッドのリストを比較し、同じペアのロックが逆の順序で含まれているかどうかをチェックするアルゴリズムを作成できます。これは、デッドロックの可能性として報告されます。ここでも、バイトコード操作を使用して、この定期的なチェックをアプリケーションに追加します。
だから私の質問はこれです: このアイデアは (a) オリジナルで (b) 実行可能ですか?