3

Java 言語仕様 7 (JLS7-17.4.5) では、「正しく同期された」プログラムを次のように定義しています。

JLS7-17.4.5 には、次のようにも記載されています。

正しく同期しないと、非常に奇妙で、混乱を招き、直感に反する動作が発生する可能性があります。

したがって、プログラマーの観点からは、プログラムが上記の定義に従って「正しく同期されている」かどうかを判断するツールがあれば非常に便利です。

そのようなツールはありますか?グーグルで検索しても何も見つかりませんでした。そのようなツールがない場合、作成することは可能でしょうか?

4

1 に答える 1

4

FindBugsはいくつかの同時実行バグを見つけることができ (検出されたバグのリストで「マルチスレッドの正確性」を検索してください)、おそらく他にも同様のツールがありますが、最終的には細心の注意を払ったコード設計とレビューによってのみ回避できるバグもあります。

並行性の問題についてクラスをテストすることもできますが、これは統計のゲームであり、OS/CPU アーキテクチャなどによっては、いくつかのバグが表示されない場合があります。

Java 並行性拷問ツールについて聞いたことがありますが、使用したことはありません。公式のJSR 166 Concurrency Interest リストで何度か言及されています。

于 2013-01-18T13:52:25.833 に答える