Advanced threading

In addition to the lower-level async constructs such as Thread and ExecutorService, there are several more advanced mechanisms for writing non-blocking code across both Kotlin and Java. In this section, we'll take a look at several of those options, including the following: