4

Javaコードの並行性を分析できるフレームワークまたはアプリケーション(アプリ)/プログラムがあるかどうか疑問に思っていましたか?

ツールがjreで出荷されたクラスとメソッドのすべての実装を知っている場合、同期されたブロックとメソッド、およびそれらの呼び出し階層の単純な分析になります。ここから、ペトリネットを作成し、デッドロックが発生する可能性があるかどうかを確認できます。

私は何かを見逃していますか、それともこれは本当に簡単ですか?それなら、そのようなことをするクールなツールがあるに違いありませんか?または、そのようなツールは、基礎となるプログラム/ビジネスロジックのために完全に保存されている可能性のあるデッドロックが多すぎることを報告しますか?ペトリネットは、これらの状況を処理するのに十分強力である必要がありますか?

これにより、デッドロックの問題に関連する場合と関連しない場合があるバグを検索するための工数を大幅に節約できます。

4

3 に答える 3

5

(多くの) 同時実行関連のバグは静的コード分析を使用して見つけることができますが、すべての種類のバグに当てはまるわけではありません。一部のバグは、特定の条件下で実行時にのみ表示されます。

IBM には、「競合状態、デッドロック、およびその他の断続的なバグ (まとめて同期問題と呼ばれる) を含む可能性が高いプログラム シナリオが高頻度で強制的に発生するように、プログラム スレッドの実行をスケジュールする」というConTestというツールがあります。

これには、インストルメント化されたバージョンのアプリに対して (単体) テストを実行する必要があります。背景情報については、このdeveloperWorks の記事 を参照してください。

于 2011-05-22T21:23:30.110 に答える
1

このホワイト ペーパーでは、ライブラリの静的解析を実行し、デッドロックが発生する可能性があるかどうかを判断するツールについて説明します。

于 2011-05-22T20:59:14.750 に答える
0

もう少し:

于 2011-12-02T18:47:43.423 に答える