Ein einfaches Concurrentes Programm trotzt der Intuition
Ein scheinbar einfaches concurrentes Programm, bei dem zwei Prozesse eine Variable 'n' jeweils zehnmal inkrementieren, lieferte ein überraschendes Ergebnis, als es mit einem Modellprüfer analysiert wurde. Intuitiv sollte der Endwert von 'n' zwischen 10 und 20 liegen. Ein extremes Ineinandergreifen der Prozesse führte jedoch dazu, dass 'n' gleich 2 war. Obwohl ein Go-Programm, das versuchte, dieses Verhalten zu reproduzieren, fehlschlug, was die Seltenheit solcher extremen Ineinandergreifungen in der Praxis unterstreicht, verdeutlicht das Beispiel die Komplexitäten und die kontraintuitive Natur der concurrenten Programmierung.
Mehr lesen