Gymterview
junior

Какова роль Подписки в реактивном программировании?

Subscription (Подписка) — интерфейс, действующий как контракт между источником данных (Publisher) и потребителем (Subscriber), обеспечивающий управление потоком, backpressure и ресурсами.

Основные методы

Метод Назначение
request(long n) Информирует источник о количестве элементов, которые потребитель готов получить
cancel() Останавливает поток данных, освобождая ресурсы

Управление backpressure

Метод request — основной канал, по которому подписчик сообщает источнику о своей текущей возможности принимать данные. Реализации Publisher оценивают готовность подписчика и адаптируют скорость передачи данных, предотвращая перегрузку.

Управление ресурсами

Для источников данных, связанных с файлами, потоками ввода-вывода или базами данных, Subscription предоставляет средства для освобождения ресурсов. После вызова cancel() источник данных может закрыть файл или прекратить сетевое взаимодействие.

На собеседовании: ключевое — Subscription связывает Publisher и Subscriber, и именно через request(n) реализуется backpressure. Частая ошибка — описывать Subscription как просто «подписку», забывая про управление потоком и ресурсами.