
Gleb Minaev
Scientific Programming Centre
Still think that Kotlin's coroutines are lightweight threads? Or don't know how or why coroutines exist beyond kotlinx.coroutines? Then you have come to the right place! We will discuss what coroutines are in pure Kotlin (without additional libraries!), and as the most illustrative example, we'll use them to build our `iterator {... }` function from the Kotlin standard library.
The main goal is to give a definition of coroutine and to thoroughly describe its functioning and internal structure. (Unfortunately, nothing of the above is not mentioned in documentation. All of it except for detailed internal structure can only be found in specification.) And at the end we will discuss what coroutine is not. They are often confused either with virtual threads from JVM or instances of Job type (or are said to be somehow related with Job or structural concurrency).
This talk will definitely be interesting to everyone who uses Kotlin in their projects or is interested in the language (both in the sense of "I like Kotlin and use it" and in the sense of "I am intrigued by Kotlin and still considering using it").

Scientific Programming Centre