Sobes.tech
Middle

Amikor egy fizikai mag két szálat futtat, ez szinkron vagy párhuzamos módon történik?

sobes.tech MI

Válasz az MI-től

Ez szinkron módon fog történni ugyanabban a mikromomentumban való végrehajtás szempontjából. Egy fizikai erőforrás (mag) nem képes két feladatot teljesen párhuzamosan végrehajtani.

Az Android operációs rendszer preemptív multitaskingot használ. A kernel váltogat a szálak között, mindegyiknek kis időkvantumokat adva. Ez a párhuzamosság (versengés) illúzióját kelti.

// Példa: preemptív multitasking
fun main() {
    val thread1 = Thread {
        for (i in 1..5) {
            println("Szál 1: $i")
            Thread.sleep(10) // Munka szimuláció
        }
    }

    val thread2 = Thread {
        for (i in 1..5) {
            println("Szál 2: $i")
            Thread.sleep(10) // Munka szimuláció
        }
    }

    thread1.start()
    thread2.start()
}

A fenti példában látható, hogy mindkét szál kimenete váltogat, ami a kontextusváltást demonstrálja közöttük.

Fogalmak:

  • Párhuzamosság: Több feladat egyidejű végrehajtása több CPU vagy fizikai magon.
  • Szinron / Versengés: Több feladat egy időintervallum alatt történő végrehajtása, amikor a processzor gyorsan váltogat a feladatok között, így hozva létre az egyidejű végrehajtás illúzióját.

Így, egyetlen magon, kontextusváltással történik több szál szinkron (versengő) végrehajtása.