Summary
In this chapter, we’ve explored the creation of threads and coroutines in Kotlin, highlighting the advantages of coroutines over traditional threads. While Kotlin offers a simpler syntax for thread creation compared to Java, it still comes with memory and performance overheads. Coroutines offer an efficient alternative for concurrent code execution in Kotlin.
By this point, you should be well versed in initiating and awaiting the completion of coroutines, as well as in retrieving their results. Additionally, we have covered the structured nature of coroutines and their interaction with dispatchers.
Furthermore, we’ve introduced the concept of structured concurrency, a contemporary approach that simplifies the prevention of resource leaks in concurrent code.
In the next chapter, we’ll explore how to leverage these concurrency mechanisms to design scalable and robust systems tailored to our requirements.