Kotlin coroutines are a lightweight alternative to Java threads. They make writing asynchronous code easy ...when you know how to use them. Coroutine scope, context, dispatchers⦠These terms seem confusing and even intimidating. This cheatsheet aims to fix this confusion and provides a three-step routine to launch coroutines accompanied with code examples.
Cheatsheet
Code Examples
runBlocking { // launch a new job launch() - it does NOT return a result val job = launch { println("Binary representation of 2 is ${Integer.toBinaryString(2)}") } // let's wait until the first job is done job.join() // async: returns a result val tenInBinary = async { Integer.toBinaryString(10) } println("Binary representation of 10 is ${tenInBinary.await()}") // let's launch several tasks at once! coroutineScope {// create a new coroutine scope for structured concurrency val numbersForBinaryConversion = listOf(42, 170, 682) // arbitrary numbers numbersForBinaryConversion.map { launch { // launches a job without a result println("Binary representation of $it is ${Integer.toBinaryString(it)}") } }.joinAll() // waits for ALL jobs in tghe list } }
Top comments (1)
Thanks for this! I'm still trying to figure coroutines out and this definitely helps a lot.