Concurrent Programming with Clojure
Track:
Alternative Languages
Skill Level: Intermediate
Room:
Ballroom E
Time Slot:
Mon 2/18, 5:30 PM
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.