Home

Why Threads Are A Bad Idea (for most purposes)

Today's summary is about a paper written by John Ousterhout in 1995. This is technically not a paper, but a presentation given by the author at a Usenix conference.


  1. Threads are independent execution streams that shared state (memory) and are often preemptively scheduled by the OS/runtime.
  2. Threads are too hard for most programmers because:
  3. Event-driven programming:
  4. Events are used in most GUIs:
  5. Problems with events:
  6. Events vs Threads:
  7. The conclusion is to avoid threads wherever possible: