Writing multithreaded code is hard—even harder than most people realise.
The good news is that there are other approaches, such as Functional Programming, Communicating Sequential Processes, Actors, and so on, which make it much easier.
This talk will start by looking at some of the less well-understood problems with multi-threaded programming—everyone knows about deadlock and livelock, but do you know what the memory model says about concurrent code, and why that makes it even harder to write than you thought?
We’ll then move on to look at the alternatives, and see why they avoid these problems. We’ll concentrate on Actors, and see how they not only solve the problems with Threads and Locks, but also make your code clearer and more robust.