Android 上的 OkHttp 线程优先级背景

OkHttp thread priority background on Android

On Android建议将线程优先级设置为THREAD_PRIORITY_BACKGROUND以避免其他线程干扰主线程。 OkHttp 使用多个线程池(调度程序、连接池等),但我发现它并不担心线程优先级。例如 Google NetworkDispatcher#84 中的 Volley 库使用 THREAD_PRIORITY_BACKGROUND

OkHttp 不设置线程优先级有什么原因吗?在 Android 上使用它时,我是否应该将线程工厂替换为将线程优先级设置为后台的线程工厂?

您可以使用为执行程序服务提供的 API 等将线程优先级设置为您喜欢的任何值

在大多数情况下,OkHttp 不使用 CPU,当它使用时,我通常不希望它是低优先级的。 OkHttp 花费其初始 CPU 周期准备发送您的网络请求。我喜欢尽可能紧急地启动网络 I/O,因为这样可以尽可能紧急地回复您的回复。一旦请求离开,OkHttp 就不会使用 CPU。它只是阻塞,静静地等待网络响应。最后,当 returns 我想紧急将其返回给调用者时。

TL;DR:您可以帮助自己调整线程优先级,但这不会有太大区别,因为 OkHttp 不经常使用 CPU,当它确实使用 CPU 我认为尽快启动 I/O 通常是个好主意。