2017-09-27 11 views
0

私はJava Desktop Applicationを開発していますが、ファイルを作成して10〜50行分の小さなコンテンツを作成しています。バックグラウンドスレッドでファイルに書き込むのがよい方法ですか?はいの場合は、どのような状況で推奨されますか?

私はメインスレッドでこれをやっていますが、このファイルI/Oをバックグラウンドスレッドで行うのですか? 私は集中的な操作がメインスレッドをブロックするので、バックグラウンドスレッドは推奨されていますが、このファイルI/Oを実行している間は、アプリケーションの遅延/ハングを監視していません。

だから、メインスレッドで小さなファイルI/Oを実行するにはどうすればいいですか?

+2

両方のオプションは大丈夫です。具体的なシナリオや要望によってまったく異なります。それを超えるものは、非常に意見に基づいています。長所と短所を特定してから決定してください。しかし、あなたはすでに両方のオプションの長所と短所を知っているように思えます。 – Zabuza

答えて

-1

あなたはファイルに数行しか書いていないので、なぜバックグラウンドに行くのですか?障害が発生した場合に適切な例外処理ができるように、メインスレッドに保持する方がよいでしょう。

+0

なぜこれが下落しているのか分かりません。短いファイルを書くことはユーザーインターフェースを妨げるものではないので、スレッドの実装とランタイムオーバーヘッドを追加する必要はありません。長いファイルを書き込むと、そのことが起こるかもしれませんし、進捗状況を表示するためにユーザーインターフェイスの更新を呼び出すことさえできます。 – daniu

1

重要なことは次のとおりです。簡単にに変更するコードを記述する必要があります。

「バックグラウンドで起こるはずですか?」という質問があると、とは異なるの回答が得られる可能性があります。たぶん今日、あなたが特別な状況でこれをやったとき、それはいいですね。しかし、あなたのプログラムの将来のバージョンでより頻繁にそれをやり始めるなら、どうしたらいいですか?それが問題になるかもしれません。

この意味で、これは将来的に更新が必要なコードの1つのコーナーだと考えてください。だから、それをすばやく変更する方法で設計してください。

「一般的」では、バックグラウンドスレッドが優先されます。スレッドは現代のハードウェアではかなり安いです。そしてJavaでは、バックグラウンドスレッドを使いやすくする合理的な抽象概念が多数用意されています(プールベースのExecutorServiceなど)。一方、ユーザーへの応答時間は常にが重要です。

こうして、私はバックグラウンドスレッドベースのソリューションに大きく傾いています。 2017年にはそれがほとんど自然なことだから。

関連する問題