Switch to speaker view

Or use left cursor

Switch to presentation view

Or use right cursor
Supported by
Every sport, every league & every match. All live, All social, All here.

You need to update your browser

These modern browsers have better performance and support the latest web technologies.

Sorry, Eventer doesn't work quite right on your device.

Right now, Eventer can be viewed on your desktop computer and any Apple mobile device with iOS 7 or later. We're hard at work on supporting other platforms.

00:00:00 / 00:00:00

Solving the Hard Problem of Concurrency

  • Joe Albahari
  • 00:39:18

Concurrency is notorious for creating complexity. I argue that the blame lies not with multithreading, mutability, or even shared writable state. The problem is one of separation: an inability to isolate concurrency logic from application logic. The cause of this inability is twofold. First, we tend to overlook the distinction between concurrency concerns and time-based concerns. Consequently, we end up with too much (complex) concurrency code and not enough (simple) temporal code. Second, there’s been a historical lack of abstractive power in mainstream programming languages. To isolate structured and unstructured concurrency, we need a language that supports type amplification, futures and time travel. The good news is that a mainstream language now supports all three: C# 5.

In this session, I will explain these concepts, and demonstrate how C# 5 simplifies asynchrony and concurrency.

  • Joe Albahari is author of the upcoming C# 5.0 in a Nutshell and the inventor of LINQPad. He has presented previously at JAOO and TechEd and has published three books on C# and LINQ with O'Reilly.

Having trouble viewing the talks? Please let us know.

Or, help us improve by telling us what you think.