Kapitel 8. Einführung und Überblick

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Was unterscheidet verteilte Systeme von Systemen mit nur einem Knoten? Schauen wir uns ein einfaches Beispiel an und versuchen, das zu erkennen. In einem Single-Thread-Programm definieren wir Variablen und den Ausführungsprozess (eine Reihe von Schritten).

Wir können zum Beispiel eine Variable definieren und einfache arithmetische Operationen mit ihr durchführen:

int x = 1;
x += 2;
x *= 2;

Wir haben eine einzige Ausführungsgeschichte: Wir deklarieren eine Variable, erhöhen sie um zwei, multiplizieren sie dann mit zwei und erhalten das Ergebnis: 6. Nehmen wir an, dass wir anstelle eines Ausführungs-Threads, der diese Operationen ausführt, zwei Threads haben, die Lese- und Schreibzugriff auf die Variable x haben.

Gleichzeitige Ausführung

Sobald zwei Ausführungsthreads auf die Variable zugreifen dürfen, ist das genaue Ergebnis der gleichzeitigen Schrittausführung nicht vorhersehbar, es sei denn, die Schritte werden zwischen den Threads synchronisiert. Statt eines einzigen möglichen Ergebnisses gibt es dann vier, wie Abbildung 8-1 zeigt.1

dbin 0801
Abbildung 8-1. Mögliche Verschachtelungen von gleichzeitigen Ausführungen
  • a) x = 2, wenn beide Threads einen Anfangswert lesen, schreibt der Addierer seinen Wert, aber er wird ...

Get Datenbank Interna now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.