Ответ
Горячий поток (Hot stream) начинает эмитить данные сразу, независимо от наличия подписчиков. Подписчики получают только новые данные после подписки. Пример — StateFlow или SharedFlow.
Холодный поток (Cold stream) начинает эмитить данные только при наличии подписчика, и каждый подписчик получает полный набор данных. Пример — Flow из корутин.
// Холодный поток
val coldFlow = flow {
emit(1)
emit(2)
}
// Горячий поток
val hotFlow = MutableStateFlow(0)