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.