DEV Community

Tanya Fesenko
Tanya Fesenko

Posted on

Cheatsheet: How to Launch a Kotlin Coroutine

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

How to launch a Kotlin Coroutine 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)

Collapse
 
mjpasx profile image
mj πŸ‘©πŸ»β€πŸ’»βœ¨

Thanks for this! I'm still trying to figure coroutines out and this definitely helps a lot.