【问题标题】:OkHttp thread priority background on AndroidAndroid上的OkHttp线程优先级背景
【发布时间】:2016-02-24 08:42:02
【问题描述】:

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

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

【问题讨论】:

    标签: android multithreading okhttp okhttp3


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-11-17
      • 1970-01-01
      • 2011-03-29
      • 2011-06-25
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 2016-06-03
      • 1970-01-01
      相关资源
      最近更新 更多