Асинхронне програмування: види, класифікація, принципи програмування, концепція, значення і застосування

Управління послідовним потоком

Для того, щоб в рамках цієї моделі продовжити встановлення послідовних потоків виконання, необхідно об’єднати кожну наступну функцію в ланцюжок, як продовження попередньої, де результати будуть оброблятися в разі успіху або невдачі. Це призводить до диагонализации коду, який був названий пірамідою пекла (ад зворотного виклику), з-за відсутності практичної керованості, якщо тільки число послідовних ланцюжків зростає мінімально.

Розпаралелювання – асинхронне виконання неблокирующих операцій відбувається негайно, так як його простий виклик виконується у фоновому режимі за визначенням. Щоб перетворити блокуючі операції в неблокирующие, потрібно невеликий процес інкапсуляції, який запускає операцію у фоновому режимі.

Синхронізація функцій продовження

Вона вимагає ланцюжка в кінці кожної паралельної послідовності функції завершення, яка застосовує певну логіку тільки після того, як буде підтверджено, що всі паралельні гілки завершені. Для реалізації цієї перевірки використовуються діаграми на основі лічильників.

Приклад з допомогою продовжувачів:

  • Паралельність, цикл дозволяє виконувати всі неблокирующие пари зчитування-рахунки неблокирующим способом.
  • Послідовність, кожна пара зчитування зчитується через крок функцій продовження.
  • Синхронізація, кожна паралельна гілка отримує останнє продовження, яке виконує логіку завершення, як тільки буде забезпечено завершення усіх гілок.