The Actor Model
When you have to do things concurrently in an application, the first thing that comes to mind is usually: “I’ll use a thread!”. Usually, if you’re lucky enough, this is followed by: “But threads are a pain…”.
I recently studied an interesting alternative at the university: the Actor Model. This model provides a manageable alternative to threads and locking. The prime example of an actor model implementation is Erlang, which is getting very popular these days.
Anyway, as part of this course, I wrote a paper discussing the concurrency in Erlang and Scala (which also uses the actor model). If you’ve ever fought with threads and wished there would be an alternative, this might be interesting for you:
Related and also interesting are the slides of this course, which also discuss communicating event loops (similar to the GLib events).