Skip to content
0:00 / 0:00

#coroutines#kotlin#csp

Kotlin Coroutines Reloaded with Roman Elizarov

Java

276K subscribers • 13 videos on Hallway

YouTube
  • Recommended by 2 people: 2 in engineering communities.
  • A classic. People kept recommending it from 2017 to 2021.
  • Presented by Roman Elizarov

Advanced. Deep dive for people who know the field.

6.5K views9 years ago2 recommendations

Programming languagesSystems programmingKotlinConcurrency and parallelism

Roman Elizarov discusses the design challenges and implementation details of Kotlin coroutines, including support for CSP-style programming.

Support for coroutines shipped in Kotlin 1.1 in a massively redesigned form versus the original plan show by Andrey Breslav on JVMLS 2016. This talk assumes familiarity with previous year's presentation (only a short overview is given) and focuses on challenges that were encountered during the implementation of the original vision on Kotlin coroutines (a teaser: one of the code examples that were shown last year had a tricky semantic problem that would result in occasional hard-to-track bugs) and how addressing them led to the change from unambitious stackless coroutines to coroutines that can suspend execution at any stack depth and is able to fully support Go-like channels and CSP programming style in general with send, receive and select operations implemented in a library. The practical issues with implementation of full-stack coroutines on JVM are highlighted with trade-offs that Kotlin had to make as a result.

Why it's here

2 people recommend this

What people say. Recommended for understanding the design proposals, scope patterns, and inner workings of Kotlin coroutines.

u/breandanin r/Kotlin • Recommends

Kotlin Coroutines Reloaded (from JVMLS 2017)

u/fangzhzhin r/Kotlin • Recommends

On “I really enjoy the "scope" pattern that Kotlin uses. Where to learn more?”

If you like the idea of CoroutineScope, CoroutineContext, suspend, you will like the Kotlin Coroutines Design proposal https://github.com/Kotlin/KEEP/blob/master/proposals/coroutines.md Also this amazing video from Roman Elizarov. link to this video