Sobes.tech
Middle

Worin besteht der Unterschied zwischen Konkurrenz und Parallelität?

sobes.tech KI

Antwort von AI

Gleichzeitigkeit ist die Fähigkeit eines Systems, mehrere Aufgaben zu verwalten, die teilweise gleichzeitig ausgeführt werden können, indem zwischen ihnen gewechselt wird. Parallelität ist die gleichzeitige Ausführung mehrerer Aufgaben auf verschiedenen Prozessor-Kernen.

Einfach gesagt, bezieht sich Gleichzeitigkeit auf die Organisation der Arbeit, damit mehrere Aufgaben Fortschritte machen können, während Parallelität die gleichzeitige Ausführung dieser Aufgaben bedeutet.

In Go wird Gleichzeitigkeit durch Goroutinen und Kanäle erreicht, und Parallelität tritt auf, wenn diese Goroutinen tatsächlich gleichzeitig auf verschiedenen Kernen ausgeführt werden.

Beispiel für Gleichzeitigkeit in Go:

package main
import (
    "fmt"
    "time"
)
func task(name string) {
    for i := 0; i < 3; i++ {
        fmt.Println(name, "Schritt", i)
        time.Sleep(100 * time.Millisecond)
    }
}
func main() {
    go task("A")
    go task("B")
    time.Sleep(500 * time.Millisecond)
}

Hier werden die Aufgaben "A" und "B" konkurrierend ausgeführt, wobei zwischen ihnen gewechselt wird, und wenn sie auf einem Mehrkernprozessor laufen, können sie parallel ausgeführt werden.