Concurrent Haskell

Concurrent Haskell
Original authorsSimon Peyton Jones
Andrew D. Gordon
Sigbjorn Finne
DeveloperThe Glasgow Haskell Team
Initial release1 January 1996 (1996-01-01)
Stable release
GHC 9.10.1 / 10 May 2024 (2024-05-10)
Written inHaskell
Operating systemLinux, FreeBSD, macOS, Windows 2000
PlatformAArch64, x86-64; Glasgow Haskell Compiler (GHC)
Included withGlasgow Haskell Compiler
Available inEnglish
Typelibrary
LicenseBSD 3-clause (new)
Websitedownloads.haskell.org/ghc/8.10.3/docs/html/users_guide/parallel.html
Repositorydownloads.haskell.org/ghc/8.10.3/docs/html/libraries/base-4.14.1.0/Control-Concurrent.html

Concurrent Haskell (also Control.Concurrent, or Concurrent and Parallel Haskell) is an extension to the functional programming language Haskell, which adds explicit primitive data types for concurrency. It was first added to Haskell 98, and has since become a library named Control.Concurrent included as part of the Glasgow Haskell Compiler.

Its two main underlying concepts are:

Built on this is a set of useful concurrency and synchronizing abstractions such as unbounded channels, semaphores and sample variables.

Haskell threads have very low overhead: creating, context-switching, and scheduling are all internal to the Haskell runtime system. These Haskell-level threads are mapped onto a configurable number of operating system (OS) level threads, usually one per processor core.