Kotlin, as a language, provides only minimal low-level APIs in its standard library to enable various other
libraries to utilize coroutines. Unlike many other languages with similar capabilities,
are not keywords in Kotlin and are not even part of its standard library. Moreover, Kotlin's concept
of suspending function provides a safer and less error-prone abstraction for for asynchronous
operations than futures and promises.
kotlinx.coroutines is a rich library for coroutines developed by JetBrains. It contains a number of high-level
coroutine-enabled primitives that this guide covers, including
async and others.
This is a guide on core features of
kotlinx.coroutines with a series of examples, divided up into different topics.
In order to use coroutines as well as follow the examples in this guide, you need to add a dependency on
kotlinx-coroutines-core module as explained
in the project README .
Table of contents
- Coroutine basics
- Cancellation and timeouts
- Composing suspending functions
- Coroutine context and dispatchers
- Exception handling and supervision
- Channels (experimental)
- Shared mutable state and concurrency
- Select expression (experimental)