Kapitel 6. Fragen der Gleichzeitigkeit
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Ich beginne dieses Kapitel mit einem Satz, der ein bisschen mystisch klingt: Wenn sich der Zustand nicht verändert, können wir die Zeit ignorieren.
Lass uns das genauer erklären. Zunächst einmal: Was hat Zeit mit der Mutation des Zustands oder überhaupt mit Programmierung zu tun? Zeit kommt in die Programmierung, wenn wir eine Reihe von Prozessen haben, die in einer bestimmten Reihenfolge ausgeführt werden müssen.
Betrachten wir das folgende Beispiel.1 Betrachte zwei Funktionen. Die erste setzt x aufx + 1. Die zweite setzt x auf x × x. Setzen wir x auf 10. Stellen wir uns nun vor, dass diese beiden Funktionen parallel laufen. Wie würde die Antwort lauten? Würde es dich überraschen, dass es fünf mögliche richtige Antworten gibt? Lasst uns das aufschlüsseln. Lass P1 = x → x × x und P2 = x → x + 1:
-
Wenn P1 x auf 100 setzt und P2 100 auf 101 setzt, erhalten wir 101.
-
Wenn P2 x auf 11 setzt und dann P1 11 auf 121, erhalten wir 121.
-
P2 ändert 10 in 11 zwischen den beiden Malen, an denen P1 während der Auswertung von x × x auf den Wert von x zugreift. In diesem Fall erhalten wir 110.
-
P2 greift auf x zu. Dann setzt P1 x auf 100. Dann setzt P2 x. Das ergibt 10.
-
P1 greift zweimal auf x zu. Dann setzt P2 x auf 11. Dann setzt P1 x. Das ergibt 100.
Welche ist die richtige Antwort? 101, 121, 110, 10, oder 100? ...
Get Funktionale Programmierung lernen 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.