私は安全な設定に書き込もうとしているutilクラスを持っています、
public static void putIntInSS(final ContentResolver resolver, final String key,
final int value) {
new Thread(new Runnable() {
@Override
public void run() {
Settings.Secure.putInt(resolver, key, value);
}
}).start();
}
これnew Thread()
はいつGCされますか?new Thread()
代わりに私のアプリケーションで使用するのは良いHandler
ですか?このようにスレッドを使用することに不利な点がある場合、それらは何ですか?
スレッドは、完了するとすぐにGCの候補になります。こちらをご覧ください。
「ハンドラーの代わりにアプリケーションでnew Thread()を使用するのは良いですか?」
つまり、「いいえ」。プロダクションコードに追加のスレッドを配置する前に、マルチスレッドのメリットとデメリット、および適切な同時実行技術をすべて理解しておく必要があります。Handler
特にメッセージ駆動型のUIベースのアプリ(Android、Windows)の場合、メッセージベースのキューイングシステム(例:)の優雅さを誇張するのは困難です。A Handler
は、単一スレッドのスループットに制限されている場合でも、並行性の錯覚を作成する効果的な方法です。
「この方法でスレッドを使用することのいくつかの欠点...」
まあ、たくさんあります。私は先に進み、リストを開始します:
このような多くの操作を短時間で開始すると、上記の問題は深刻になります。さらに:
ソフトウェアエンジニアリングの多くは、不要な複雑さを回避する方法に関するものです。物事をシンプルに保つ。場合によっては、パフォーマンス要件が厳しいことがあります。これらのプロジェクトでは、CPUがどのように機能するかを注意深く計画し、詳細に理解する必要があります。ほとんどの場合、ソフトウェアについて最も重要なことは、それが正しいことです。そのため、シングルスレッドを維持する方が簡単です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加