Sobes.tech
Junior — Middle

Роли асосии корутинҳо дар барномасозӣ чист ва онҳо аз ҷараёнҳо чӣ фарқ мекунанд?

sobes.tech AI

Ҷавоб аз AI

Корутинҳо равандҳои иҷрои сабук ҳастанд, ки имкон медиҳанд, ки кодҳои асинхронӣ ва рақобатӣ бо роҳҳои содда ва фаҳмо нависанд. Дар Android (ва Kotlin), корутинҳо барои иҷрои вазифаҳо дар пасзамина истифода мешаванд, бе бастани сӯрохи асосӣ (сӯрохи UI).

Асосӣ фарқиятҳо байни корутинҳо ва сӯрохиҳо:

  • Легковесӣ: корутинҳо ба назар камтар аз захираҳои системӣ истифода мебаранд.
  • Идоракунӣ: корутинҳо аз ҷониби нақшакаш дар дохили барнома идора мешаванд, на аз ҷониби системаи оператсионӣ.
  • Бастан ва идома додан: корутинҳо метавонанд дар нуқтаҳои муайян (suspend) боздошта шаванд ва идома дода шаванд, ки барномасозии асинхронро содда мекунад.

Масалан истифодаи корутин дар Kotlin барои Android:

import kotlinx.coroutines.*

fun loadData() {
    GlobalScope.launch(Dispatchers.Main) { // оғоз кардани корутин дар сӯрохи асосӣ
        val data = withContext(Dispatchers.IO) { // гузаштан ба сӯрохи пасзамина
            fetchDataFromNetwork() // дархости дароз
        }
        updateUI(data) // навсозии UI
    }
}

Бинобар ин, корутинҳо имкон медиҳанд, ки кодҳои асинхронӣ нависанд, ки ба назар секвенсионӣ ҳастанд, бе callback-ҳои мураккаб ва бастанҳо.