Tutorial 5a

Concurrent Threads

Zwei Threads inkrementieren den Wert einer gemeinsamen Variablen, wobei sie nicht-atomare Operationen verwenden. Jeder Thread führt hierzu eine Schleife mit einer festen Anzahl an Iterationen aus. In jeder Iteration wird der aktuelle Wert der Variablen gelesen, um 1 erhöht und anschließend zurückgeschrieben.

Im fehlerfreien Fall – also ohne Nebenläufigkeitsprobleme – entspricht der Endwert der Variablen der Summe der Iterationen beider Threads.

Beispiel:

Thread 1 und Thread 2 führen jeweils 1000 Iterationen aus. Erwartet wird somit ein Endwert der gemeinsamen Variablen von 2000.