Sobes.tech
Junior — Middle

Dasturlash tilida korutinlardan foydalanishda raqobat vazifalari qanday boshqariladi?

sobes.tech AI

AIdan javob

Kotlin'da, korutinlar, yengil bajarish oqimlarini ishlatib, iplarni bloklamasdan, raqobatbardosh vazifalarni boshqarishga imkon beradi. Boshqaruv quyidagicha amalga oshiriladi:

  • CoroutineScope — korutinlar uchun ko‘rish doirasi, ularning hayot aylanishini nazorat qiladi.
  • Dispatcher — korutina qaysi ip yoki iplar havuzida bajarilishini belgilaydi (masalan, Dispatchers.IO kirish-chiqish uchun, Dispatchers.Default CPU intensiv vazifalar uchun).
  • Job — korutina vazifasini ifodalovchi obyekt, uni bekor qilish yoki holatini kuzatish uchun ishlatiladi.

Bir nechta raqobatbardosh korutinlarni ishga tushirish misoli:

import kotlinx.coroutines.*

fun main() = runBlocking {
    val job1 = launch(Dispatchers.Default) {
        // Raqobatbardosh vazifa 1
        delay(1000)
        println("Vazifa 1 yakunlandi")
    }
    val job2 = launch(Dispatchers.IO) {
        // Raqobatbardosh vazifa 2
        delay(500)
        println("Vazifa 2 yakunlandi")
    }
    joinAll(job1, job2) // Ikkala vazifaning yakunlanishini kutamiz
}

Shu tarzda, korutinlar raqobatbardoshlikni samarali boshqarish imkonini beradi, vazifalar orasida o'tishni ta'minlab, iplarni bloklamasdan va yukni optimal taqsimlash uchun dispatcherlardan foydalanadi.