Junior — Middle
How do coroutines interact within a single program?
sobes.tech AI
Answer from AI
In Android (and Kotlin), interaction between coroutines is usually carried out through synchronization mechanisms and data exchange, such as:
- Channels — allow sending and receiving data between coroutines asynchronously.
- SharedFlow and StateFlow — reactive streams for propagating events and states.
- Shared context or objects with synchronization — for example,
Mutexto protect shared resources.
An example of using a channel for message exchange between coroutines:
val channel = Channel<String>()
// Sender
launch {
channel.send("Hello from coroutine")
}
// Receiver
launch {
val message = channel.receive()
println(message)
}
Thus, coroutines can exchange data and coordinate work without thread blocking.