Was ist der Unterschied zwischen Gleichzeitigkeit und Parallelität?
Beispiele sind erwünscht.
Was ist der Unterschied zwischen Gleichzeitigkeit und Parallelität?
Beispiele sind erwünscht.
Stellen Sie sich das wie Warteschlangen vor, bei denen der Server nur den ersten Auftrag in einer Warteschlange bedienen kann.
1 Server, 1 Auftragswarteschlange (mit 5 Aufträgen) -> keine Gleichzeitigkeit, keine Parallelität (nur ein Auftrag wird bis zur Fertigstellung bearbeitet, der nächste Auftrag in der Warteschlange muss warten, bis der bearbeitete Auftrag erledigt ist und kein anderer Server ihn bearbeiten kann)
1 Server, 2 oder mehr verschiedene Warteschlangen (mit 5 Aufträgen pro Warteschlange) -> Gleichzeitigkeit (da der Server die Zeit mit allen 1. Aufträgen in den Warteschlangen teilt, gleichmäßig oder gewichtet), immer noch keine Parallelität, da zu jedem Zeitpunkt nur ein einziger Auftrag bearbeitet wird.
2 oder mehr Server, eine Warteschlange -> Parallelität (2 Aufträge werden gleichzeitig ausgeführt), aber keine Gleichzeitigkeit (die Server teilen sich keine Zeit, der dritte Auftrag muss warten, bis einer der Server fertig ist).
2 oder mehr Server, 2 oder mehr verschiedene Warteschlangen -> Gleichzeitigkeit und Parallelität
Mit anderen Worten, Gleichzeitigkeit bedeutet, dass man sich die Zeit für die Erledigung einer Aufgabe teilt, es kann sein, dass man die gleiche Zeit für die Erledigung der Aufgabe benötigt, aber zumindest wird sie früher begonnen. Wichtig ist, dass Aufträge in kleinere Aufträge aufgeteilt werden können, was eine Verschachtelung ermöglicht.
Parallelität wird einfach durch mehr CPUs, Server, Menschen usw. erreicht, die parallel laufen.
Wenn die Ressourcen gemeinsam genutzt werden, kann keine reine Parallelität erreicht werden, aber genau hier hat die Gleichzeitigkeit ihren besten praktischen Nutzen, indem sie eine andere Aufgabe übernimmt, die diese Ressource nicht benötigt.
Ich mag Paul Butcher's respuesta auf diese Frage (er ist der Autor von Sieben Gleichzeitigkeitsmodelle in sieben Wochen ):
Obwohl sie oft verwechselt werden, sind Parallelität und Gleichzeitigkeit unterschiedliche Dinge. Gleichzeitigkeit ist ein Aspekt des Problembereichs -Ihr Code muss mehrere gleichzeitige (oder nahezu gleichzeitige) Ereignisse . Die Parallelität hingegen ist ein Aspekt der Lösung Bereich -Sie wollen Ihr Programm schneller laufen lassen durch Verarbeitung verschiedene Teile des Problems parallel verarbeitet werden. Einige Ansätze sind für Gleichzeitigkeit, manche für Parallelität und manche für beides. Verstehen Sie, womit Sie es zu tun haben, und wählen Sie das richtige Werkzeug für die Aufgabe.
Aus dem Buch Linux-Systemprogrammierung von Robert Love:
Gleichzeitigkeit, Parallelität und Wettrennen
Threads erzeugen zwei verwandte, aber unterschiedliche Phänomene: Gleichzeitigkeit und Parallelität. Beide sind bittersüß und berühren sowohl die Kosten des Threading als auch seine Vorteile. Gleichzeitigkeit ist die Fähigkeit von zwei oder mehr Threads in überlappender Zeit auszuführen Zeiträume . Parallelität ist die Fähigkeit, zwei oder mehr Threads auszuführen gleichzeitig . Gleichzeitigkeit kann ohne Parallelität auftreten: zum Beispiel Multitasking auf einem Einzelprozessorsystem. Parallelität (manchmal auch betont als echte Parallelität ) ist eine besondere Form der Gleichzeitigkeit, die mehrere Prozessoren erfordert (oder einen einzigen Prozessor, der mehrere Motoren bedienen kann Ausführung fähig ist, wie z. B. eine GPU). Bei der Gleichzeitigkeit machen mehrere Threads vorwärts, aber nicht unbedingt gleichzeitig. Bei Parallelität werden Threads buchstäblich parallel ausgeführt, so dass Multithreading-Programme mehrere Prozessoren nutzen können.
Gleichzeitigkeit ist ein Programmiermuster, eine Art, an Probleme heranzugehen. Parallelität ist ein Hardwaremerkmal, das durch Gleichzeitigkeit erreicht werden kann. Beide sind nützlich.
Diese Erklärung steht im Einklang mit der akzeptierten Antwort. In Wirklichkeit sind die Konzepte viel einfacher, als wir denken. Halten Sie sie nicht für Zauberei. Bei der Gleichzeitigkeit geht es um eine Zeitspanne während es beim Parallelismus um genau zur gleichen Zeit , gleichzeitig .
In der Elektronik Serie y parallel stellen eine Art statische Topologie dar, die das tatsächliche Verhalten der Schaltung bestimmt. Wenn es keine Gleichzeitigkeit gibt, Parallelität ist deterministisch .
Um die Dynamik zu beschreiben, zeitbezogene Phänomene verwenden wir die Begriffe sequenziell y gleichzeitig . Ein bestimmtes Ergebnis kann zum Beispiel durch eine bestimmte Reihenfolge von Aufgaben (z. B. ein Rezept). Wenn wir mit jemandem sprechen, produzieren wir eine Folge von Wörtern. In Wirklichkeit laufen jedoch im selben Moment viele andere Prozesse ab, übereinstimmen auf das tatsächliche Ergebnis einer bestimmten Handlung. Wenn viele Leute gleichzeitig sprechen, können gleichzeitige Gespräche unsere Abfolge stören, aber die Ergebnisse dieser Störungen sind nicht im Voraus bekannt. Gleichzeitigkeit führt zu Unbestimmtheit .
Die Charakterisierung seriell/parallel und sequentiell/gleichzeitig ist orthogonal. Ein Beispiel dafür ist die digitale Kommunikation. In einer Serienadapter ist eine digitale Nachricht zeitlich (d. h. sequenziell ), die über dieselbe Kommunikationsleitung (z. B. ein Kabel) verteilt sind. In einer Paralleladapter Diese wird auch auf parallele Kommunikationsleitungen (z. B. viele Drähte) aufgeteilt und dann auf der Empfangsseite wieder zusammengesetzt.
Stellen wir uns ein Spiel vor, mit 9 Kindern. Wenn wir sie in einer Kette anordnen, eine Nachricht an den ersten geben und sie am Ende empfangen, haben wir eine serielle Kommunikation. Weitere Wörter bilden die Nachricht, die aus einer Folge von Kommunikationseinheiten besteht.
I like ice-cream so much. > X > X > X > X > X > X > X > X > X > ....
Dies ist eine sequentieller Prozess reproduziert auf einem serielle Infrastruktur .
Nun stellen wir uns vor, die Kinder in 3er-Gruppen aufzuteilen. Wir teilen den Satz in drei Teile auf, geben den ersten dem Kind der Reihe links von uns, den zweiten dem Kind der mittleren Reihe usw.
I like ice-cream so much. > I like > X > X > X > .... > ....
> ice-cream > X > X > X > ....
> so much > X > X > X > ....
Dies ist eine sequentieller Prozess reproduziert auf einem parallele Infrastruktur (allerdings noch teilweise in Serienform).
In beiden Fällen, vorausgesetzt, die Kommunikation zwischen den Kindern ist perfekt, ist das Ergebnis bestimmt im Voraus.
Wenn es andere Personen gibt, die gleichzeitig mit dem ersten Kind sprechen, dann haben wir gleichzeitige Prozesse . Wir wissen nicht, welches Verfahren von der Infrastruktur berücksichtigt wird, so dass das Endergebnis unbestimmt im Voraus.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.