Middle
Wanneer een fysiek kern twee threads uitvoert, gebeurt dit dan synchroon of parallel?
sobes.tech AI
Antwoord van AI
Dit zal synchroon gebeuren in termen van gelijktijdige uitvoering in hetzelfde micro-moment. Een fysiek resource (kern) kan niet twee taken volledig parallel uitvoeren.
Het Android-besturingssysteem gebruikt preemptive multitasking. De kernel schakelt tussen threads en wijst elk kleine tijdsintervallen toe. Dit creëert de illusie van parallelisme (concurrentie).
// Voorbeeld: preemptive multitasking
fun main() {
val thread1 = Thread {
for (i in 1..5) {
println("Thread 1: $i")
Thread.sleep(10) // Simulatie van werk
}
}
val thread2 = Thread {
for (i in 1..5) {
println("Thread 2: $i")
Thread.sleep(10) // Simulatie van werk
}
}
thread1.start()
thread2.start()
}
In het bovenstaande voorbeeld zien we dat de uitvoer van de regels van beide threads afwisselt, wat de contextswitch tussen hen demonstreert.
Concepten:
- Parallelisme: Gelijktijdige uitvoering van meerdere taken op hetzelfde moment op meerdere fysieke CPU's of cores.
- Synchronous / Concurrerende: Uitvoering van meerdere taken over een bepaalde tijdsperiode, waarbij de processor snel tussen taken schakelt, waardoor de illusie ontstaat dat ze gelijktijdig worden uitgevoerd.
Dus, op één kern, vindt een synchrone (concurrerende) uitvoering van meerdere threads plaats via contextswitching.