Programming Clojure Concurrency
In this talk you will learn to write correct concurrent programs in Clojure, without the complexity of managing Java locks. You will learn how:
- Software transactional memory (STM) manages coordinated, synchronous changes to shared state.
- Agents provide a more decoupled model, where independent tasks proceed asynchronously.
- Vars manage thread-local bindings, which are useful for a variety of tasks not normally associated with concurrency.
Concurrency is a fact of life, and increasingly a fact of software. There are several important reasons that programs need to do more than one thing at a time:
- Expensive computations may need to execute in parallel on multiple cores (or multiple boxes) in order to complete in a timely manner.
- Tasks that are blocked waiting for a resource need to stand down and let other tasks use available processors.
- User interfaces need to remain responsive while performing long running tasks.
- Operations that are logically independent are easier to implement if the platform can recognize and take advantage of their independence.
In this talk you will learn to write correct concurrent programs in Clojure, without the complexity of managing Java locks. You will learn how:
- Software transactional memory (STM) manages coordinated, synchronous changes to shared state.
- Agents provide a more decoupled model, where independent tasks proceed asynchronously.
- Vars manage thread-local bindings, which are useful for a variety of tasks not normally associated with concurrency.
About Stuart Halloway
Stuart Halloway is the CEO of Relevance, Inc. (www.thinkrelevance.com). With co-founder Justin Gehtland, Stuart helps companies adopt agile, as well as innovative technologies such as Clojure and Ruby on Rails. Stuart is the author of Programming Clojure, Rails for Java Developers, and Component Development for the Java Platform. Prior to founding Relevance, Stuart was the Chief Architect at Near-Time, and the Chief Technical Officer at DevelopMentor.
More About Stuart »

