Concurrent Programming with Clojure - stuarthalloway/presentations GitHub Wiki
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.
On the Web
- 2013 DevNexus video
- 2013 DevNexus slides
- Video from Oredev, Nov 2009