Sobes.tech
Junior — Middle

Coroutines'ta тапшырмаларды аткаруунун кандай жолдорун билесиң?

sobes.tech AI

AIден жооп

Kotlin Coroutines'те тапшырмаларды бир нече жол менен аткарууга болот:

  • launch — жаңы coroutine баштайт, ал параллелдүү иштейт жана натыйжа кайтарбайт. Арткы пландагы тапшырмалар үчүн колдонулат, анда натыйжа керек эмес.

  • async — натыйжасы Deferred түрүндө кайтарган coroutine баштайт, ал 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()}")
}