...

/

Hot Channel and Cold Flow

Hot Channel and Cold Flow

Get an overview of hot channel and cold flow.

We'll cover the following...

Returning to coroutines, the most typical way to create a flow is using a builder, similar to the produce function, called flow.

Press + to interact
val channel = produce {
while (true) {
val x = computeNextValue()
send(x)
}
}
val flow = flow {
while (true) {
val x = computeNextValue()
emit(x)
}
}

These builders are conceptually equivalent, but since the behavior of channels and flow is very different, there are also significant differences between these two functions.

Channel example

Take a look at the example below. Channels are hot, so they immediately start calculating the values. This calculation starts in a separate coroutine. This is why ...