Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Concurrent Programming with Clojure
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.