Concurrency constructs
If you ever wrote concurrent code in Java, you probably used some of its concurrency primitives. It might surprise you that Kotlin doesn’t have any constructs for dealing with concurrency as part of the language. The Kotlin design team felt that this should be the job of libraries. The Kotlin standard library has, in the base kotlin
 package and the kotlin.concurrent
package, several functions, and annotations that can compile to Java's concurrency primitives.
Concurrent programming is a huge topic and we could write an entire book about it. So in this section, we’ll cover only what Kotlin has to offer for concurrent programming.
Starting a thread
Doing some work in a different thread can be done in Kotlin the same as in Java, by creating an instance of the Thread
class with a Runnable
 function and then starting it. Kotlin also offers a shortcut function called thread
that is a little bit easier to use. It has several default parameters and only needs a lambda that will...