Concurrency demos
From HaskellWiki
(Difference between revisions)
(category parallel) |
|||
| (19 intermediate revisions not shown.) | |||
| Line 1: | Line 1: | ||
| - | + | This page collects examples of concurrent and parallel programming in Haskell. | |
| - | + | ||
| - | + | == Examples == | |
| - | + | ||
| - | + | * [[/Zeta |Riemann's Zeta function approximation]] | |
| + | * [[/Graceful exit|Signal that you want to gracefully exit another thread]] | ||
| + | * [[/Two reader threads|Passing messages across a single chan to two readers]] | ||
| + | * [[Implement a chat server|Chat server - using a single channel for a variable number of readers]] | ||
| + | * [[/Simple producer and consumer|Passing IO events lazily from a producer to a consumer thread]] | ||
| - | + | == More examples == | |
| - | + | A large range of small demonstration programs for using concurrent and | |
| - | + | parallel Haskell are in the Haskell [http://darcs.haskell.org/testsuite/tests/ghc-regress/concurrent/should_run/ concurrency regression tests]. In particular, they show the use of <hask>MVars</hask> and <hask>forkIO</hask>. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | == Proposed updates == | |
| - | + | ||
| - | + | The base 3.0.3.1 package's Control.Concurrent.QSem and QSemN are not exception safe. The [[SafeConcurrent]] has the proposed replacement code. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | == Other examples == | |
| - | + | * [[/Haskell-Javascript concurrency|Haskell -> Javascript: Pseudo-concurrent threads in web browser]] | |
| - | + | [[Category:Parallel]] | |
| - | + | [[Category:Tutorials]] | |
| - | + | [[Category:Code]] | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
Current revision
This page collects examples of concurrent and parallel programming in Haskell.
Contents |
1 Examples
- 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
2 More examples
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 ofMVars
forkIO
3 Proposed updates
The base 3.0.3.1 package's Control.Concurrent.QSem and QSemN are not exception safe. The SafeConcurrent has the proposed replacement code.
4 Other examples
Categories: Parallel | Tutorials | Code
