Clojure - Atome
Atomssind ein Datentyp in Clojure, mit dem gemeinsam genutzte, synchrone und unabhängige Status verwaltet werden können. Ein Atom ist wie jeder Referenztyp in einer anderen Programmiersprache. Die Hauptverwendung eines Atoms besteht darin, die unveränderlichen Datenstrukturen von Clojure zu speichern. Der von einem Atom gehaltene Wert wird mit dem geändertswap! method.
Intern tauschen! liest den aktuellen Wert, wendet die Funktion darauf an und versucht, ihn zu vergleichen und einzustellen. Da ein anderer Thread den Wert in der Zwischenzeit möglicherweise geändert hat, muss er möglicherweise erneut versuchen, und zwar in einer Spin-Schleife. Der Nettoeffekt besteht darin, dass der Wert immer das Ergebnis der atomaren Anwendung der bereitgestellten Funktion auf einen aktuellen Wert ist.
Beispiel
Atome werden mit Hilfe der Atommethode erzeugt. Ein Beispiel dafür finden Sie im folgenden Programm.
(ns clojure.examples.example
(:gen-class))
(defn example []
(def myatom (atom 1))
(println @myatom))
(example)
Ausgabe
Das obige Programm erzeugt das folgende Ergebnis.
1
Auf den Wert von atom wird mit dem @ -Symbol zugegriffen. Clojure hat einige Operationen, die an Atomen durchgeführt werden können. Es folgen die Operationen.
Sr.Nr. | Operationen & Beschreibung |
---|---|
1 | zurücksetzen! Setzt den Wert von atom ohne Berücksichtigung des aktuellen Werts auf einen neuen Wert. |
2 | vergleichen und einstellen! Setzt den Wert von Atom genau dann atomar auf den neuen Wert, wenn der aktuelle Wert des Atoms mit dem alten Wert des Atoms identisch ist. Gibt true zurück, wenn set auftritt, andernfalls false. |
3 | Tauschen! Vertauscht den Wert des Atoms atomar gegen einen neuen, basierend auf einer bestimmten Funktion. |