时间:2019-05-23 08:20:58

标签: http kotlin okhttp3 kotlin-coroutines

我正在研究基于okhttp3的kotlin库。 okhttp3内部使用其自己的Dispatcher,并且具有诸如maxRequestsmaxRequestsPerHost之类的字段,这些字段确定当前可以发送多少个请求。我想将此请求的数量设置为等于kotlin中Dispatchers.IO中的协程数量,以使逻辑接近协程。

所以,这是问题:

  1. 如何从程序代码中获取Dispatchers.IO范围内的线程数? (也许有一些我找不到的方法/公共常量)
  2. 或者,我们可以通过Dispatchers.IO文档手动设置此数字。 Kotlin开发人员写道,线程数量“ 默认为64个线程或内核数(以较大者为准)的限制”。这个信息会改变还是这个事实是不变的?

1 个答案:

答案 0 :(得分:1)

答案是您不需要IO调度程序来使用okhttp,因为它是一个异步HTTP库。 Dispatchers.IO的目的是在主UI线程之外进行阻塞操作。异步操作将在Main调度程序上执行,因为它们不会阻塞线程。