Verwenden Sie die Kotlin-Sleep-Funktion, um die Ausführung eines Threads auszusetzen

Kailash Vaviya 15 Februar 2024
  1. Verwendung der Kotlin-Funktion Thread.Sleep()
  2. Verwendung der Kotlin-Funktion TimeUnit Sleep()
  3. Verwendung der Kotlin-Funktion Delay()
Verwenden Sie die Kotlin-Sleep-Funktion, um die Ausführung eines Threads auszusetzen

Java hat eine wait()-Funktion, die die Ausführung des aktuellen Threads pausiert. Der Thread schläft, bis ein anderer Thread eintritt und den schlafenden Thread benachrichtigt.

Aber gibt es ein Äquivalent in Kotlin? Kotlin hat nicht die Funktion wait(), aber es hat die Funktion sleep().

Die Kotlin-Funktion sleep() unterbricht die Ausführung einer bestimmten Coroutine. Während dies die Ausführung nicht anhält, ermöglicht es die Ausführung anderer Coroutinen.

In diesem Artikel erfahren Sie, wie Sie die Funktion sleep() in Kotlin verwenden. Außerdem lernen wir eine andere Möglichkeit kennen, eine Coroutine mit der Funktion delay() zu unterbrechen.

Verwendung der Kotlin-Funktion Thread.Sleep()

Wir können die Funktion Thread.sleep() verwenden, um eine Coroutine in den Ruhezustand zu versetzen und andere unabhängige Coroutinen laufen zu lassen.

Die Syntax zur Verwendung der Funktion sleep() lautet:

Thread.sleep(milliseconds)

Hier ist ein Beispiel, in dem wir die Kotlin-Funktion sleep() verwenden, um die Ausführung einer Coroutine um 3 Sekunden zu unterbrechen.

fun main() {

    println("Suspending execution")

    try {
        // making the coroutine sleep for 3 seconds
        Thread.sleep(3000)
    } catch (e: InterruptedException) {
        e.printStackTrace()
    }

    println("Resuming execution")
}

Ausgabe:

Verwenden der Kotlin-Schlaffunktion von Thread

Verwendung der Kotlin-Funktion TimeUnit Sleep()

Wie Thread.sleep() können wir auch TimeUnit verwenden, um die Ausführung eines Threads zu unterbrechen.

Während die Thread-Technik nur die Anzahl der Millisekunden als Eingabe akzeptiert, akzeptiert TimeUnit 7 verschiedene Zeiteinheiten. Diese 7 Zeiteinheiten sind:

  1. Nanosekunden
  2. Mikrosekunden
  3. Millisekunden
  4. Sekunden
  5. Minuten
  6. Stunden
  7. Tage

Die TimeUnit rechnet den übergebenen Wert automatisch in Millisekunden um, was die Funktion sleep() entgegennimmt.

Die TimeUnit-Methoden sind Teil der java.util.concurrent-Bibliothek. Daher müssen wir die concurrent-Bibliothek importieren, um diese Methode zu verwenden.

Hier ist ein Beispiel, das die Kotlin-Funktion sleep() von TimeUnit demonstriert.

import java.util.concurrent.TimeUnit

fun main() {
    println("Suspending execution")

    try {
        // // making the coroutine sleep for 3 seconds
        TimeUnit.SECONDS.sleep(3)
    } catch (e: InterruptedException) {
        e.printStackTrace()
    }
    println("Resuming execution")
}

Ausgabe:

Verwenden der Kotlin-Schlaffunktion von TimeUnit

Verwendung der Kotlin-Funktion Delay()

Neben der Kotlin-Funktion sleep() können wir auch die Funktion delay() verwenden, um die Ausführung einer Coroutine zu unterbrechen. Die Funktion delay() akzeptiert auch Millisekunden als Eingabe.

Hier ist ein Beispiel, um die Verwendung der Kotlin-Funktion delay() zu zeigen.

import kotlinx.coroutines.*

fun main() = runBlocking {
    launch { // launches a new coroutine
        delay(2000L) // This delays the execution by 2 seconds allowing other coroutines to run independently
        println("welcome!") // This will be printed after the delay
    }
    print("Hi and ") // This will be printed first since the other coroutine is delayed
}

Ausgabe:

Verwenden der Kotlin-Verzögerungsfunktion

Kailash Vaviya avatar Kailash Vaviya avatar

Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.

LinkedIn