15.22. Das gefürchtete »Problem der verlorenen Aktualisierung«

Hier kommt ein weiteres klassisches Nebenläufigkeitsproblem, das aus der Datenbankwelt stammt. Es ist zwar eng mit der Rainer-und-Monika-Story verwandt, aber wir nehmen hier dieses Beispiel, um einige weitere Punkte aufzuzeigen.

Bei der verlorenen Aktualisierung (lost update) geht es um einen bestimmten Vorgang:

Schritt 1: Kontostand abfragen

int i = kontostand;

Schritt 2: Kontostand um 1 erhöhen

kontostand = i + 1;

Um das Problem aufzuzeigen, wenden wir einen Trick an: Wir zwingen den Computer, die Veränderung des Kontostands in zwei Schritten vorzunehmen. Im wahren Leben würde dafür eine einzige Anweisung genügen: kontostand++;

Aber dadurch, dass wir das in zwei Schritte aufteilen, ...

Get Java™ von Kopf bis Fuß 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.