Sobes.tech
Junior — Middle

Чӣ роҳҳои иҷрои вазифаҳо дар Coroutines-ро медонӣ?

sobes.tech AI

Ҷавоб аз AI

В Kotlin Coroutines задачите могат да бъдат изпълнявани по няколко начина:

  • launch — стартира нова coroutine, която се изпълнява паралелно и не връща резултат. Използва се за фонови задачи, където резултатът не е необходим.

  • async — стартира coroutine, която връща резултат под формата на Deferred, позволявайки да получите резултата чрез await(). Подходящо за паралелни изчисления с резултат.

  • runBlocking — блокира текущия поток, докато coroutine не приключи, и често се използва в main функции или тестове.

  • withContext — променя контекста на изпълнение (например към Dispatchers.IO за операции за вход/изход) и изпълнява блок от код, връщайки резултата.

Пример:

import kotlinx.coroutines.*

fun main() = runBlocking {
    launch {
        delay(1000)
        println("Задача в launch")
    }

    val result = async {
        delay(500)
        42
    }

    println("Резултат от async: ${result.await()}")
}