This chapter focused on the core underpinnings of concurrency in the JVM and how to use them effectively in Kotlin. Concurrency is a large subject, and this chapter will have given a solid footing to anyone who is new to using concurrency. Those who already are very familiar with concurrent code can see how Kotlin offers small but useful helper functions in the concurrent package.
In Chapter 14, Coroutines, we will see that coroutines are a powerful abstraction that solves some of the problems of concurrent programming.