Clojure and concurrency
Learn about Clojure's four concurrency models
From the developerWorks archives
Date archived: January 4, 2017 | First published: September 14, 2010
The Clojure programming language has gained a lot of attention recently. The attention, however, is not for some of the obvious reasons, such as it being a modern Lisp dialect or that it runs on top of the Java™ Virtual Machine. The features that are drawing many people to it are its concurrency features. Clojure is perhaps most well known for supporting the Software Transactional Memory (STM) model natively. STM, however, is not always the best solution for every concurrency problem. Clojure includes support for other paradigms in the form of agents and atoms. This article examines each of the concurrency approaches that Clojure provides and explores when each is most appropriate.
This content is no longer being updated or maintained. The full article is provided "as is" in a PDF file. Given the rapid evolution of technology, some steps and illustrations may have changed.