Concurrent Haskell

From Wikipedia, the free encyclopedia

DeveloperThe Glasgow Haskell Team
Initial release1 January 1996; 30 years ago (1996-01-01)
Stable release
GHC 9.10.1 / 10 May 2024; 23 months ago (2024-05-10)
Concurrent Haskell
Original authorsSimon Peyton Jones
Andrew D. Gordon
Sigbjorn Finne
DeveloperThe Glasgow Haskell Team
Initial release1 January 1996; 30 years ago (1996-01-01)
Stable release
GHC 9.10.1 / 10 May 2024; 23 months ago (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.[1] 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[2] 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.

STM monad

References

Related Articles

Wikiwand AI