Reader small image

You're reading from  Kotlin Design Patterns and Best Practices - Third Edition

Product typeBook
Published inApr 2024
PublisherPackt
ISBN-139781805127765
Edition3rd Edition
Right arrow
Author (1)
Alexey Soshin
Alexey Soshin
author image
Alexey Soshin

Alexey Soshin is a software architect with 18 years of experience in the industry. He started exploring Kotlin when Kotlin was still in beta, and since then has been a big enthusiast of the language. He's a conference speaker, published writer, and the author of a video course titled Pragmatic System Design
Read more about Alexey Soshin

Right arrow

Jobs

The result of running an asynchronous task is referred to as a job. Just as the Thread object represents an actual OS thread, the Job object represents an actual coroutine.

For instance, consider the following function that initiates a coroutine to generate a universally unique identifier (UUID) asynchronously and returns it:

fun fastUuidAsync() = GlobalScope.async { 
    UUID.randomUUID() 
}

However, if we execute this code from our main method, it won’t print the expected UUID value. Instead, it will produce a result similar to the following:

> DeferredCoroutine{Active} 

The object returned from a coroutine is known as a job. Now, let’s explore what a job is and how to use it correctly.

To illustrate this concept, consider the following code snippet:

fun main() {
    runBlocking {
        val job: Deferred<UUID> = fastUuidAsync()
        println(job.await())
    }
}

A job has a simple life cycle and can be in one of...

lock icon
The rest of the page is locked
Previous PageNext Page
You have been reading a chapter from
Kotlin Design Patterns and Best Practices - Third Edition
Published in: Apr 2024Publisher: PacktISBN-13: 9781805127765

Author (1)

author image
Alexey Soshin

Alexey Soshin is a software architect with 18 years of experience in the industry. He started exploring Kotlin when Kotlin was still in beta, and since then has been a big enthusiast of the language. He's a conference speaker, published writer, and the author of a video course titled Pragmatic System Design
Read more about Alexey Soshin