1

大量の XML ファイルを処理する Java プログラムがあります。プロセスの実行には数時間かかり、時には停止する必要があります。今のところ、私はCTRL-Cそれを強制終了し、それが作業していたファイルをメモし、後でそれらのファイルのデータを削除して再処理します。

コマンドラインでユーザー入力を待機している間、Java を動作させ続ける方法はありますか? さらに、リッスン中にコマンドプロンプトにログ情報を出力し続けることはできますか?

ファイル間でユーザー入力を数秒間待機させることを検討しましたが、これにより全体的な処理に時間がかかり、ユーザー入力を簡単にタイムアウトにする方法があるかどうかわかりません。

4

2 に答える 2

1

XML プロセッサを実行するための別のスレッドを生成することに関心がありますjava.util.concurrent。ライブラリを調べてください。

メインスレッドはユーザー入力を処理でき、他のスレッドはコンソールに報告できます。2 つの間の同時実行の問題を処理することは困難な場合があります。頭痛の種を避けるために、2 つの間の通信をできるだけ避けることをお勧めします。

次のようなコードを追加することになります

Thread xmlProcessorThread = new Thread(yourRunnableXMLProcessor);
xmlProcessorThread.run();

runnableXML プロセッサにインターフェイスを追加します (したがって、名前が付けられますyourRunnableXMLProcessor) 。

于 2012-11-28T22:51:36.630 に答える
0

コマンド ライン アプリケーションで、実際にファイルを処理する新しいスレッドを開始します。処理スレッドは、各ファイルの後に内部フラグをチェックし、続行するかどうかを決定できます。メイン アプリケーション スレッドは、コマンド ライン入力をリッスンし続け、入力の受信に基づいてフラグの値を設定できます。

于 2012-11-28T22:53:01.390 に答える