Join us on:

T37. Event-based Concurrency Control

Tom Van Cutsem, Vrije Universiteit Brussel

Tom Van Cutsem is a Postdoctoral Research Fellow of the Fund for Scientific Research, Flanders. He is affiliated with the Programming Technology Laboratory of the Free University of Brussels, Belgium. He is active in the area of pervasive and ubiquitous computing and programming language design and implementation. He is the co-designer of the distributed actor-based programming language AmbientTalk. His coordinates can be found at

This tutorial provides an introduction to event-based concurrency control. Event-based systems are widely used for GUI and network programming, but in this tutorial we regard them as a high-level alternative to threads for organising concurrent tasks. The rise of multi-core processors requires even traditional desktop applications to exploit concurrency to achieve better performance. This tutorial exposes you to alternative forms of concurrent programming that do not require you to be a wizard in multithreading. Issues such as race conditions and deadlocks will be clarified and the advantages as well as the drawbacks of both threads and events will be discussed.

We provide an in-depth discussion of "actors", an old paradigm of concurrent programming that has received renewed interest in recent years through languages such as Erlang, Scala and Clojure. But we do not stop here. It turns out that event-based programming can be reconciled quite naturally with object-oriented programming if one is willing to make a few changes to the typical OO model present in mainstream languages. We discuss both programming languages with such an event loop model, as well as libraries for mainstream languages that achieve the same. Throughout the tutorial, we use lots of concrete code examples with a healthy mix of both mainstream (mostly Java) as well as more didactic languages.

Keywords: concurrency control, event loops, actors, threads, race conditions, deadlock, futures


Participants will learn:

  • the differences between multithreaded and event-based concurrency control
  • the issues, advantages and disadvantages of both multithreading and event-based programming
  • the foundations of the actor model of concurrency and its incarnation in modern languages
  • how event-based concurrency control can be integrated with object-oriented programming
  • how to use an event loop library in a multithreaded language

This tutorial will be lecture based. The lecture contains lots of code snippets (written in various languages) to illustrate concrete issues and concepts.

Audience: Researchers, Practitioners, Educators
Please email any questions to . This e-mail address is being protected from spambots. You need JavaScript enabled to view it