Tackling Concurrency With STM

Writing software applications in which parts of the application run in different, concurrently running threads introduces many challenges not present in single-threaded applications. Since the order of operations isn’t fixed, failures can be difficult to repeat and thoroughly testing the software is more difficult.

There are many models for creating concurrent software that have been implemented in a variety of programming languages. Arguably the most popular models today are based on locks, actors and transactional memory. This talk briefly describes all three models, including their pros and cons. It then dives deeper into software-based transactional memory (STM). The talk ends with a detailed look at a specific STM implementation, that provided by the Clojure programming language.

Attendees will gain a better understanding of the options available for creating multithreaded software applications and gain a clear understanding of the characteristics of STM. This knowledge will aid software developers in making decisions about programming for concurrency regardless of the programming language being used.

Mark Volkmann



Mark is a partner at Object Computing, Inc. in St. Louis where he provides software consulting, creates and teaches software engineering courses and writes technical articles. He is a frequent speaker at symposiums and user groups. His past presentations and articles are available at Mark’s recent interests include functional programming, Clojure and Software Transactional Memory.