This page collects examples of concurrent and parallel programming in Haskell.
- Riemann's Zeta function approximation
- Signal that you want to gracefully exit another thread
- Passing messages across a single chan to two readers
- Chat server - using a single channel for a variable number of readers
- Passing IO events lazily from a producer to a consumer thread
A large range of small demonstration programs for using concurrent and
parallel Haskell are in the Haskell concurrency regression tests. In particular, they show the use of
The base 18.104.22.168 package's Control.Concurrent.QSem and QSemN are not exception safe. The SafeConcurrent has the proposed replacement code.