Difference between revisions of "Concurrency demos"
Jump to navigation
Jump to search
DonStewart (talk | contribs) (Point to concurrency benchmarks for those looking for code) |
(category parallel) |
||
(23 intermediate revisions by 6 users 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 |
A large range of small demonstration programs for using concurrent and |
||
− | parallel Haskell are [http://darcs.haskell.org/testsuite/tests/ghc-regress/concurrent/should_run/ |
+ | 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]] |
||
⚫ | |||
⚫ |
Latest revision as of 16:18, 16 March 2011
This page collects examples of concurrent and parallel programming in Haskell.
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
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 of MVars
and forkIO
.
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.