0

Android では、スレッドの優先順位を に設定しTHREAD_PRIORITY_BACKGROUNDて、他のスレッドがメイン スレッドに干渉しないようにすることをお勧めします。OkHttp は複数のスレッド プール (ディスパッチャー、接続プールなど) を使用しますが、スレッドの優先順位については心配していません。NetworkDispatcher#84の Google Volleyライブラリの例としてTHREAD_PRIORITY_BACKGROUND

OkHttp がスレッドの優先順位を設定しない理由はありますか? Android で使用する場合、スレッド ファクトリをスレッドの優先度をバックグラウンドに設定するものに置き換える必要がありますか?

4

1 に答える 1

1

エグゼキュータ サービスなどに提供されている API を使用して、スレッドの優先度を好きなように設定できます。

ほとんどの場合、OkHttp は CPU を使用しません。CPU を使用する場合は通常、優先度を低くしたくありません。OkHttp は、最初の CPU サイクルを使用して、ネットワーク リクエストを送信する準備をします。ネットワーク I/O をできるだけ早急に開始するのが好きです。リクエストがなくなると、OkHttp は CPU を使用しません。ブロックするだけで、静かにネットワークの応答を待ちます。最後に、それが戻ってきたとき、私はそれを緊急に発信者に返すのが好きです.

TL;DR: スレッドの優先度を微調整することはできますが、OkHttp は CPU をあまり使用しないため、大きな違いはありません。CPU を使用する場合は、多くの場合、I/ を取得することをお勧めします。 Oはできるだけ早く始めました。

于 2016-03-25T12:23:44.843 に答える