Sobes.tech
Junior — Middle

Hogyan különböznek egymástól a végrehajtási szálak és a korutinok a programozás kontextusában?

sobes.tech MI

Válasz az MI-től

Végrehajtási szálak (threads) olyan rendszertervezési egységek, amelyek lehetővé teszik a kód párhuzamos végrehajtását, külön szintek és processzor-környezetek használatával. Ezek nehezebbek a létrehozásban és a váltásban, és szinkronizációt igényelnek a közös erőforrásokhoz való hozzáféréshez.

A korutinok könnyű, kooperatív végrehajtási egységek, amelyek a szálakon belül működnek, és lehetővé teszik az aszinkron kód szekvenciális írását. A korutinok nem hoznak létre új szálakat, hanem szüneteltetésük során felszabadítják a szálat más feladatok számára, növelve ezzel a hatékonyságot.

Példa Kotlinben:

import kotlinx.coroutines.*

fun main() = runBlocking {
    launch {
        delay(1000L)
        println("Korutina befejeződött")
    }
    println("Fő szál")
}

Ebben a példában a korutin nem blokkolja a fő szálat, hanem a delay-nél szünetel, lehetővé téve más feladatok végrehajtását.