Как выполнить задачу подсчета от 1 до 1 млн

«Как выполнить задачу подсчета от 1 до 1 млн» — вопрос из категории Многопоточность, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для подсчета от 1 до 1 млн в Android лучше использовать Coroutine или Flow для асинхронной обработки без блокировки UI:

// Использование Coroutine
viewModelScope.launch {
    (1..1_000_000).forEach { number ->
        // Обработка числа
        delay(1) // Для избежания блокировки UI
    }
}

// Использование Flow
fun countNumbers(): Flow<Int> = flow {
    (1..1_000_000).forEach { emit(it) }
}

viewModelScope.launch {
    countNumbers().collect { number ->
        // Обработка числа
    }
}

Ключевые моменты:

  • Не выполняйте в UI-потоке
  • Используйте delay() для уступки потока
  • Для больших данных предпочтительнее Flow