2

私は自分の Android プロジェクトHandlerで全体と組み合わせて使用​​します。HandlerThread私はサービスでそれらのほとんどを使用します。そこでは、優先度の低い個々の HandlerThread に支えられた私の Handlers が で作成されonCreated()、 で停止されonDestroy()ます。

彼らの多くはずっと待っています。たとえば、5 分ごとに数秒間処理します。

合計で、私のアプリには約 20 のスレッドがあります (そのうちの半分は HandlerThreads です)。では、非常に多くのスレッドが開いていることはパフォーマンスの問題ですか? Javaでスレッドを待機させるのは悪いことですか? 私はそれが正しいはずだということを学びました。それが当てはまるかどうかを確認したいだけですHandlerThread

4

1 に答える 1

1

20くらい?たぶん悪くない。カーネルのスケジューラのパフォーマンスがわずかに低下する可能性がありますが、OS の制限に達せず、ポーリングも行わない限り、アイドル スレッドが CPU を使用することはありません。ただし、それらはメモリを消費する可能性があるため、それらのスレッドで絶対に必要ではない参照を保持しないようにしてください。

于 2016-02-03T22:40:31.753 に答える