Concurrency und State in Clojure

  • von Nicolai Mainiero

Nicolai Mainiero, sidion

Bei funktionalen Programmiersprachen wird immer wieder hervorgehoben, dass sich nebenläufige (concurrent) Programme einfacher realisieren lassen. In Clojure wurde neben den effizienten unveränderlichen (immutable) Datenstrukturen transaktionaler Speicher (software transactional memory) implementiert, um den Zustand zu kontrollieren. Damit hat der Programmierer ein mächtiges Werkzeug, um koordiniert und synchron den Zustand der Anwendung zu ändern.

Wenn in einer Anwendung Nebenläufigkeit verwendet wird, ist es immer aufwendig, den Zustand während der Ausführung zu kontrollieren, um Fehler wie race conditions oder lost updates zu verhindern. Wenn die Anwendung auch noch auf einem System mit mehreren Prozessorkernen ausgeführt wird,...

Den vollständigen Artikel aus der Java aktuell 03/2021 als PDF herunterladen:

Zurück