Чтобы гарантировать отзывчивость, необходимо покинуть основной поток или поток пользовательского интерфейса для выполнения действий пользовательского интерфейса. Это исключает интенсивное рисование или 3D-рендеринг в играх. Когда вы начнете выполнять вычислительные операции в основном потоке, пользователь увидит лаг. Классический пример:
при нажатии кнопки, сон (1000). Сравните это с нажатием кнопки, чтобы запустить AsyncTask, который спит (1000).
Asynctask (и другие потоки) позволяет приложению обрабатывать вычисления и взаимодействия с пользовательским интерфейсом "одновременно".
Что касается параллелизма, переключение контекста - это название игры (как пишет Дан).
Многопоточность на одноядерном процессоре не увеличит вашу производительность. Фактически, накладные расходы, связанные с переключением контекста, фактически уменьшат вашу производительность. ОДНАКО, кого волнует, как быстро работает ваше приложение, когда пользователь разочарован пользовательским интерфейсом и просто закрывает приложение?
Несомненно, Asynctask - это путь.