Speaker Topics - No Fluff Just Stuff

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 a founder and President of Cognitect, Inc. (www.cognitect.com). 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.

Learn more about Stu's presentations on his wiki.

More About Stuart »