Sobes.tech
Junior — Middle

Welche Methoden können verwendet werden, um die Ausführung von Coroutinen innerhalb eines einzelnen Threads umzuschalten?

sobes.tech KI

Antwort von AI

In Kotlin können Koroutinen innerhalb eines einzelnen Threads mit verschiedenen Dispatchern und Funktionen umgeschaltet werden:

  • withContext(Dispatchers.Main) — Wechsel zum Haupt- (UI-)Thread.
  • withContext(Dispatchers.Default) — Wechsel zu einem Thread-Pool für CPU-intensive Aufgaben.
  • withContext(Dispatchers.IO) — Wechsel zu einem Thread-Pool für Ein- und Ausgabevorgänge.

Außerdem kann yield() verwendet werden, um freiwillig die Kontrolle an eine andere Koroutine im aktuellen Thread abzugeben.

Beispiel für einen Kontextwechsel:

launch {
    // Arbeit im Haupt-Thread
    withContext(Dispatchers.IO) {
        // Durchführung einer Ein- / Ausgaboperation
    }
    // Rückkehr zum Haupt-Thread
}