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.