Clojure and concurrency

Learn about Clojure's four concurrency models

From the developerWorks archives

Michael Galpin

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.



static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Web development, Java development
ArticleID=521698
ArticleTitle=Clojure and concurrency
publish-date=09142010