Sobes.tech
Middle

Wenn ein physischer Kern zwei Threads ausführt, geschieht dies synchron oder parallel?

sobes.tech KI

Antwort von AI

Dies wird synchron im Sinne der gleichzeitigen Ausführung in einem einzigen Mikromoment passieren. Eine physische Ressource (Kern) kann zwei Aufgaben nicht vollständig parallel ausführen.

Das Android-Betriebssystem verwendet präemptives Multitasking. Der Kernel wechselt zwischen Threads und weist jedem kleine Zeitscheiben zu. Dies erzeugt die Illusion von Parallelität (Konkurrenz).

// Beispiel: präemptives Multitasking
fun main() {
    val thread1 = Thread {
        for (i in 1..5) {
            println("Thread 1: $i")
            Thread.sleep(10) // Arbeitssimulation
        }
    }

    val thread2 = Thread {
        for (i in 1..5) {
            println("Thread 2: $i")
            Thread.sleep(10) // Arbeitssimulation
        }
    }

    thread1.start()
    thread2.start()
}

Im obigen Beispiel sehen wir, dass die Ausgaben der Zeilen beider Threads abwechseln, was den Kontextwechsel zwischen ihnen demonstriert.

Begriffe:

  • Parallelismus: Gleichzeitige Ausführung mehrerer Aufgaben zu einem bestimmten Zeitpunkt auf mehreren physischen CPUs oder Kernen.
  • Synchrone / konkurrierende Ausführung: Ausführung mehrerer Aufgaben über einen Zeitraum, bei der die CPU schnell zwischen den Aufgaben wechselt und so die Illusion ihrer gleichzeitigen Ausführung erzeugt.

Daher findet auf einem einzelnen Kern eine synchrone (konkurrente) Ausführung mehrerer Threads durch Kontextwechsel statt.