Asynchronous or non-blocking programming is an important part of the development landscape. When creating server-side, desktop, or mobile applications, it's important to provide an experience that is not only fluid from the user's perspective, but also scalable when needed.
Kotlin solves this problem in a flexible way by providing coroutine support at the language level and delegating most of the functionality to libraries.
In addition to opening the doors to asynchronous programming, coroutines also provide a wealth of other possibilities, such as concurrency and actors.
New to Kotlin? Take a look at the Getting started page.
- Coroutines guide
- Basics
- Channels
- Coroutine context and dispatchers
- Shared mutable state and concurrency
- Asynchronous flow