TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Папочка Разработки

15 Sep, 10:03

Открыть в Telegram Поделиться Пожаловаться

За что отвечает ключевое слово async?

У каждого спрашивали на собеседовании про модификатор async, большинство слышали про стейт-машину и на вопрос «а зачем же оно всё надо» ответят примерно следующим образом:

Ну… Это значит, что метод развернётся в стейт-машину, там свитч ещё будет, ну и метод вообще асинхронный, а это значит, ждать не будем.


Чего? Я понимаю, что у нас всё всегда упаковывается в паттерны, а для всего уже придумали модные термины, но тут всё намного проще.

Запоминайте раз и навсегда, чтобы не умные термины учить, а понять 🌟.

В обычный метод поток заходит, делает какие-то дела и выходит — всё, после этого следов выполнения не осталось, а они и не нужны, ведь задача уже готова.

В асинхронный метод потоку НАДО УМЕТЬ зайти, прервать (уметь — не значит прервать, это уже от await зависит) выполнение в какой-то момент, выйти, а потом вернуться в то же место.

Зачем?

Например: мы в середине метода хотим сделать запрос к БД, который вернёт нам кучу строк и будет выполняться пару секунд.

Конечно, можно повисеть в середине метода и подождать, пока БД вернёт ответ, но это потоку надо прям висеть и ждать, а он не на помойке себя нашёл и может потратить это время более продуктивно.

А эта БД пусть сама скажет, когда закончит. Тогда какой-нибудь поток и отправим продолжать выполнение метода.

За счёт этого во время асинхронной операции ввода-вывода (это как раз наш запрос к БД) не занят ни один поток приложения.


Всё. Вот для этого механизма и нужны стейт-машины, свитчи и мув некcты, которые под капотом это всё делают. Если нет понимания идеи, то знания про стейт машину бесполезны

1.4k 0 15 5 35
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot