Sobes.tech
Junior — Middle

Coroutines'da vazifalarni bajarishning qanday usullarini bilasiz?

sobes.tech AI

AIdan javob

Kotlin Coroutines'da vazifalar bir necha usul bilan bajarilishi mumkin:

  • launch — yangi coroutine boshlaydi, u parallel ravishda ishlaydi va natija qaytarmaydi. Orqa fon vazifalari uchun ishlatiladi, natija kerak emas.

  • async — natija bilan Deferred shaklida natija qaytaradigan coroutine boshlaydi, await() orqali natijani olish mumkin. Natija bilan parallel hisoblashlar uchun mos keladi.

  • runBlocking — hozirgi oqimni, coroutine tugaguncha bloklaydi va ko'pincha main funksiyalarida yoki testlarda ishlatiladi.

  • withContext — bajarilish kontekstini o'zgartiradi (masalan, Dispatchers.IO ga kirish-chiqish operatsiyalari uchun) va kod blokini bajaradi, natijani qaytaradi.

Misol:

import kotlinx.coroutines.*

fun main() = runBlocking {
    launch {
        delay(1000)
        println("launch ichidagi vazifa")
    }

    val result = async {
        delay(500)
        42
    }

    println("async natija: ${result.await()}")
}