Skip to content

Что же такое асинхронность?

Расскажу своё взгляд на эту тему и применение.

Что это такое?

Асинхронность — это выполнение задач без блокировки основного потока. Когда мы видим лоадер в приложении, который продолжает крутиться во время выполнения асинхронной функции — это и есть пример асинхронности.

А если точнее?
Асинхронная функция не запускается в отдельном потоке и не использует выделенную память. Она откладывается до получения результата. Когда асинхронная функция завершится, создаётся Event, который сообщает о получении результата и указывает, что функцию можно встроить в EventLoop.

Проще говоря, синхронные функции не блокируются благодаря тому, что асинхронные функции «откладываются» до момента, когда результат будет готов.

Что такое Event?
Event — это внешнее событие, которое сообщает о чём-то, что произошло извне, например:
– завершение асинхронной функции,
– взаимодействие пользователя с устройством.

Как применяются асинхронные методы?

  1. Запросы к серверу
    Когда мы обращаемся к серверу, мы не знаем, сколько времени займёт ответ. При этом экран не должен блокироваться — например, чтобы можно было показать лоадер.

  2. Выполнение вычислений
    Если нужно запустить тяжёлые вычисления, которые могут занять время, — лучше выполнять их в асинхронной функции, чтобы не подвешивать интерфейс.

  3. Обработка переходов между экранами
    Например, при уходе на другой экран запускается асинхронная функция, которая завершится, когда пользователь вернётся обратно.

INFO

Примерно 90% всех асинхронных функций — это работа с сервером, ещё 9% — обработка переходов между экранами, и около 1% — всё остальное. (Цифры примерные, на основе опыта с простыми проектами.)


Вот и первый технический пост. Надеюсь, получилось понятно и доступно для всех 😊

Ссылка для прочтения на сайте:
shoshi.tech/src/articles/article3.html