Characteristics, Elements, and Real-life Use Cases of Flow
Learn about the characteristics and elements of flow using real-life examples.
The characteristics of Flow
The terminal operations of Flow
(like collect
) suspend a coroutine instead of blocking a thread. They also support other coroutine functionalities, such as respecting the coroutine context and handling exceptions. We can cancel flow processing, and structured concurrency is supported out of the box. The flow
builder is not suspending and does not require any scope. The terminal operation suspends and builds a relation to its parent coroutine (similar to the coroutineScope
function).
Example
The example below shows how the CoroutineName
context is passed from collect
to the lambda expression in the flow
builder. It also indicates that launch
cancellation also leads to proper flow processing cancellation.
Get hands-on with 1400+ tech skills courses.