Обычный flow-билдер создаёт холодный поток: работа запускается для каждого коллектора. SharedFlow — горячая рассылка, StateFlow — горячее состояние с текущим значением и начальным значением.
В чём разница между StateFlow, SharedFlow и обычным Flow?
Обычный flow-билдер создаёт холодный поток: работа запускается для каждого коллектора. SharedFlow — горячая рассылка, StateFlow — горячее состояние с текущим значением и начальным значением.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Обычный flow-билдер создаёт холодный поток: работа запускается для каждого коллектора. SharedFlow — горячая рассылка, StateFlow — горячее состояние с текущим значением и начальным значением.
StateFlow хранит последнее значение и объединяет обновления по равенству, поэтому не предназначен для гарантированной доставки каждого события. SharedFlow настраивает replay и буфер; при отсутствии подписчиков поведение зависит от конфигурации, и само слово «горячий» не означает надёжную очередь. Интерфейс Flow общий: не любой объект типа Flow обязательно холодный.
Источник: kotlinlang.org.