Сколько потоков в Dispatchers.IO? - PullRequest
1 голос
/ 23 мая 2019

Я работаю над библиотекой, которая основана на okhttp3 для kotlin.Внутренне okhttp3 использует свой собственный Dispatcher и имеет поля, такие как maxRequests и maxRequestsPerHost , которые определяют, сколько запросов мы можем отправить в данный момент.Я хочу установить количество этих запросов равным количеству сопрограмм в Dispatchers.IO в котлине, чтобы логика была близка к сопрограммам.

Итак, вот вопросы:

  1. Как мы можем получить количество потоков в Dispatchers.IO из кода программы?(Возможно, есть какой-то метод / публичная константа, которую я не нашел)
  2. В качестве альтернативы мы можем установить это число вручную с помощью документации Dispatchers.IO .Разработчики Kotlin пишут, что количество потоков « по умолчанию ограничено 64 потоками или количеством ядер (в зависимости от того, что больше) ».Будет ли эта информация изменена или этот факт неизменен?

1 Ответ

1 голос
/ 23 мая 2019

Ответ в том, что вам не нужен диспетчер IO для работы с okhttp, потому что это асинхронная HTTP-библиотека.Целью Dispatchers.IO является выполнение операций блокировки из основного потока пользовательского интерфейса.Асинхронные операции должны выполняться на диспетчере Main, поскольку они не блокируют поток.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...