Что же такое асинхронность?
Расскажу своё взгляд на эту тему и применение.
Что это такое?
Асинхронность — это выполнение задач без блокировки основного потока. Когда мы видим лоадер в приложении, который продолжает крутиться во время выполнения асинхронной функции — это и есть пример асинхронности.
А если точнее?
Асинхронная функция не запускается в отдельном потоке и не использует выделенную память. Она откладывается до получения результата. Когда асинхронная функция завершится, создаётся Event
, который сообщает о получении результата и указывает, что функцию можно встроить в EventLoop
.
Проще говоря, синхронные функции не блокируются благодаря тому, что асинхронные функции «откладываются» до момента, когда результат будет готов.
Что такое Event?Event
— это внешнее событие, которое сообщает о чём-то, что произошло извне, например:
– завершение асинхронной функции,
– взаимодействие пользователя с устройством.
Как применяются асинхронные методы?
Запросы к серверу
Когда мы обращаемся к серверу, мы не знаем, сколько времени займёт ответ. При этом экран не должен блокироваться — например, чтобы можно было показать лоадер.Выполнение вычислений
Если нужно запустить тяжёлые вычисления, которые могут занять время, — лучше выполнять их в асинхронной функции, чтобы не подвешивать интерфейс.Обработка переходов между экранами
Например, при уходе на другой экран запускается асинхронная функция, которая завершится, когда пользователь вернётся обратно.
INFO
Примерно 90% всех асинхронных функций — это работа с сервером, ещё 9% — обработка переходов между экранами, и около 1% — всё остальное. (Цифры примерные, на основе опыта с простыми проектами.)
Вот и первый технический пост. Надеюсь, получилось понятно и доступно для всех 😊
Ссылка для прочтения на сайте:
shoshi.tech/src/articles/article3.html