Sobes.tech
Middle

Шумо дар бораи диспетчерҳо дар Android чӣ медонед?

sobes.tech AI

Ҷавоб аз AI

Dispatchers (ёки Dispatchers) дар Android, махсусан дар контексти корутинҳои Kotlin, муайян мекунанд, ки кадом сӯрохиҳо корутинаро иҷро мекунанд.

Типҳои асосии dispatchers:

  • Dispatchers.Main: Барои ҳамкорӣ бо UI. Гарант мекунад, ки код дар сӯрохи асосӣ иҷро мешавад.
  • Dispatchers.IO: Барои амалиётҳои блоккунандаи воридот/баромад (кор бо шабака, диск, базаи додаҳо). Оптимизатсияшуда барои шумораи зиёди вазифаҳои параллелӣ.
  • Dispatchers.Default: Барои вазифаҳои ҳисоббарорӣ, ки бо UI ё I/O алоқаманд нестанд. Пул умумии сӯрохиҳо истифода мебарад, ки шуморааш маҳдуд ба шумораи ядроҳои процессор.
  • Dispatchers.Unconfined: Корутин дар сӯрохи ҳозира оғоз мешавад, аммо пас аз нуқтаи аввалини таъхир, дар ҳар сӯрохи, ки онро такмил медиҳад, идома медиҳад.

Истифодаи dispatchers:

import kotlinx.coroutines.*

fun main() = runBlocking {
    // Иҷрои корутин дар сӯрохи асосӣ (агар дастрас бошад)
    launch(Dispatchers.Main) {
        // Навсозии UI
    }

    // Иҷрои корутин барои амалиётҳои I/O
    launch(Dispatchers.IO) {
        // Хондан аз файл ё дархости шабакавӣ
    }

    // Иҷрои корутин барои ҳисобҳо
    launch(Dispatchers.Default) {
        // Иҷрои алгоритми мураккаб
    }
}

Интихоби dispatcher дуруст барои иҷрои беҳтарин ва ҷавобгӯии барнома муҳим аст, аз банд кардани сӯрохи асосӣ пешгирӣ мекунад ва истифодаи самараноки захираҳоро таъмин мекунад.