アプリケーションに初期化スレッドがあり、いくつかのサブスレッドを集約して順次実行します (必要なディレクトリを確認し、xml ファイルが利用可能かどうかを確認するなど)。要件が満たされない場合、プログラムを安全に終了させたい。
ここではどのようなアプローチを使用する必要がありますか?
各サブスレッドがプログラムを終了する必要があり、要件が満たされていないことがわかった場合 (たとえば java
System.exit(0);
)、それは良い習慣ではないと思います。私が持っている別のアイデアは、各スレッドがグローバルマップにブール値を設定することです。マップは、スレッドの初期化後にチェックされます (ただし、サブスレッド 2 がサブスレッド 1 に依存している場合は問題になります)。利点は、アプリケーションが「ソフトに」終了できることです。
質問
したがって、開始要件が満たされない場合、プログラム (約 6 kLOC の中小規模のプロジェクト) を終了するための良い実践と見なされるもの. この概念には、(少なくとも) 詳細なエラー メッセージを出力する可能性が含まれている必要があります。
質問が広すぎたので。広さを減らすためにJavaに制限しています。さらに複雑にするために、並列処理を含む概念についても満足しています。