Concurrent Programming with Clojure

Track: Alternative Languages
Skill Level: Intermediate
Room: Ballroom E
Time Slot: Mon 2/18, 5:30 PM
Presentation Link
Abstract

Clojure’s immutable, persistent data structures encourage side-effect free programming that can easily scales across multiple processor cores. In this talk, we will explore the various features Clojure provides for dealing with concurrency:

  • Atoms provide for synchronous, uncoordinated updates
  • Agents provide a thread-safe mechanism for asynchronous, uncoordinated updates
  • Futures are a convenient mechanism for execution on a separate thread
  • Delays provide a way to defer work for one-time execution when needed
  • Promises provide one-time delivery as a mechanism for coordination
  • Software Transactional Memory (STM) provides a mechanism for managing references and updates across threads.
  • Dynamic Vars support thread-local state.
Stuart Halloway

@stuarthalloway is a founder and President of Cognitect (formerly Relevance). He is a Clojure committer, and a developer of the
Datomic database.

Stuart has spoken at a variety of industry events, including StrangeLoop, Clojure/conj, EuroClojure, ClojureWest, SpeakerConf, QCon, GOTO, OSCON, RailsConf, RubyConf, JavaOne, and NFJS.

Stuart has written a number of books and technical articles. Of these,
he is most proud of Programming Clojure.