Concurrent Haskell

Concurrent Haskell
Original author(s)Simon Peyton Jones
Andrew D. Gordon
Sigbjorn Finne
Developer(s)The Glasgow Haskell Team
Initial release1 January 1996 (1996-01-01)
Stable release
GHC 9.10.1 / 10 May 2024 (2024-05-10)
Repositorydownloads.haskell.org/ghc/8.10.3/docs/html/libraries/base-4.14.1.0/Control-Concurrent.html
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

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.