Edward Lee's 'The Problem with Threads' still haunts concurrency

Deterministic Concurrency [video]

A Hacker News discussion of a video on deterministic concurrency quickly turns to Edward Lee's seminal paper "The Problem with Threads" and the ideas it inspired. One commenter wonders what might have emerged had Lee collaborated with Joe Armstrong, Erlang's creator and a fellow champion of deterministic, message-passing models over shared-memory threads.

Boy would I love to see what would have happened if he and Joe Armstrong would have collaborated...
  1. yvdriess

    I find it useful to use the term "determinate" (determinacy) [1,2] when dealing with concurrent or parallel computing. That puts the focus on equality of outcome (same result), leaving open "deterministic" to mean the exact same sequence of events (schedule).

    [1] As used by Jack Dennis and Arvind: https://cacm.acm.org/opinion/the-resurgence-of-parallelism/#...

    [2] Originally defined by Karp & Miller: https://www.jstor.org/stable/2946247

  2. anonymousDan

    I remember deterministic/stable multi threading was an active area in systems research a while back. As I recall it never saw much adoption, most likely due to performance. Haven't watched the full video but will be interesting to see their views on that.

  3. CoolestBeans

    Refreshing post. This is way above my skis. What's interesting to me is that explaining why someone would want deterministic models clarified why someone would want a nondeterministic model. As long as you have a way to make the properties you care about invariant, then you can let the actual implementation be whatever. You also might not want to use a deterministic concurrency model to deal with faults. The point is working around the nondeterminism that the actual implementation experiences. This is a conceit of Erlang, to accept that there are nondeterministic parts of the system, but that the recovery from them is deterministic. You could probably model fault as an input in the Reactor model and then model fault recovery.

    What's interesting about the Reactor model is you don't have to accept that combining two deterministic processes automatically makes it nondeterministic. That has to be super useful for real world systems.

More from this day

2026-09-28