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.