Sobes.tech
Junior — Middle

Чӣ гуна идоракунии вазифаҳои рақобатӣ ҳангоми истифодаи корутинҳо дар забони барномасозӣ анҷом дода мешавад?

sobes.tech AI

Ҷавоб аз AI

Дар Kotlin, корутинҳо имкон медиҳанд, ки вазифаҳои ҳамзамонро бе бастани сӯрохиҳо идора кунанд, бо истифода аз сӯрохиҳои сабукрави иҷро. Идоракунӣ тавассути:

  • CoroutineScope — соҳаи намоён барои корутинҳо, ки давраи ҳаёти онҳоро назорат мекунад.
  • Dispatcher — муайян мекунад, ки дар кадом сӯрохи ё пуле аз сӯрохиҳо корутин иҷро мешавад (масалан, Dispatchers.IO барои воридот/баромад, Dispatchers.Default барои вазифаҳои CPU-амалӣ).
  • Job — объекти, ки вазифаи корутинро намояндагӣ мекунад, бо кӯмак ба он метавон онро бекор ё ҳолати онро пайгирӣ кард.

Масалан, оғоз кардани чанд корутин ҳамзамон:

import kotlinx.coroutines.*

fun main() = runBlocking {
    val job1 = launch(Dispatchers.Default) {
        // Вазифаи ҳамзамон 1
        delay(1000)
        println("Вазифа 1 ба анҷом расид")
    }
    val job2 = launch(Dispatchers.IO) {
        // Вазифаи ҳамзамон 2
        delay(500)
        println("Вазифа 2 ба анҷом расид")
    }
    joinAll(job1, job2) // интизор шудан барои анҷоми ҳар ду вазифа
}

Бинобар ин, корутинҳо имкон медиҳанд, ки самаранок идора кардани рақобатро, бо гузаштан байни вазифаҳо бе бастани сӯрохиҳо ва истифодаи dispatcher-ҳо барои тақсимоти оптималии бор, таъмин кунанд.