Sobes.tech
Middle

Чӣ гуна метавон бо бисёрсоҳавӣ дар Kotlin кор кард?

sobes.tech AI

Ҷавоб аз AI

Дароии бисёрсоҳавии дар Kotlin метавонад бо чанд роҳ амалӣ карда шавад, ҳар кадоме аз онҳо дар асоси вазифаҳои муайян манфиатҳояшонро доранд:

  1. Тонҳои классикии JVM (java.lang.Thread):
    API-и Java-ро мустақиман истифода мебарем.

    // Эҷод ва оғоз кардани як тон нав
    Thread {
        // Код, ки дар як тон алоҳида иҷро мешавад
        println("Салом аз тон!")
    }.start()
    
  2. Иҷрокунандагон (java.util.concurrent пакет):
    идоракунии чандиронаи пулҳои тонҳоро таъмин мекунад.

    // Истифодаи пули тонҳои доимӣ
    import java.util.concurrent.Executors
    
    val executor = Executors.newFixedThreadPool(4)
    
    executor.submit {
        // Вазифа барои иҷро дар пул
        println("Вазифа дар пул иҷро мешавад")
    }
    
    // Фаромӯш накунед, ки пулро ба охир расонед
    // executor.shutdown()
    
  3. Корутиниҳо (Kotlin Coroutines):
    Тонҳои сабук, ки бо рамка идора карда мешаванд, ва иҷрои асинхронӣ ва беихтиёрро таъмин мекунанд. Онҳо дар рушди муосири Android афзалият доранд.

    // Илова кардани вобастагиҳо kotlinx-coroutines-core ва kotlinx-coroutines-android
    
    import kotlinx.coroutines.*
    
    // Иҷрои корутин дар доираи ҷаҳонӣ
    GlobalScope.launch {
        delay(1000L) // Тафсири беихтиёр
        println("Салом аз корутин!")
    }
    
    // Мисол барои истифода дар ViewModel (барои Android)
    /*
    import androidx.lifecycle.ViewModel
    import androidx.lifecycle.viewModelScope
    
    class MyViewModel : ViewModel() {
        fun doSomethingAsync() {
            viewModelScope.launch {
                // Код, ки дар доираи ViewModel кор мекунад,
                // автоматӣ бекор мешавад, вақте ViewModel тоза мешавад
            }
        }
    }
    */
    

Мувофиқсозии роҳҳо:

Роҳ Идоракунӣ Сабукӣ Ҳал кардани хатоҳо Бекориш Суръатнокии истифода (барои вазифаҳои оддӣ)
java.lang.Thread Дастӣ (эҷод, оғоз, идоракунӣ) Вазнин Дастӣ Дастӣ Миёна
java.util.concurrent Бо API-и иҷрокунандагон Вазнин Бо API Бо API Миёна
Корутиниҳо (Kotlin Coroutines) Рамка (гурӯҳҳо, контекстҳо, диспетчерҳо) Сабук Сохторӣ Дарунӣ Паст (барои вазифаҳои оддӣ)

Корутиниҳо самараноктарин ва қулайтарин роҳ барои кор бо коди асинхронӣ дар Android мебошанд, ки мушкилоти идоракунии давраи ҳаёт ва бекор кардани вазифаҳоро кам мекунанд.