source: doc/proposals/concurrency/text/intro.tex@ b10c621c

ADT aaron-thesis arm-eh ast-experimental cleanup-dtors deferred_resn demangler enum forall-pointer-decay jacob/cs343-translation jenkins-sandbox new-ast new-ast-unique-expr new-env no_list persistent-indexer pthread-emulation qualifiedEnum resolv-new with_gc
Last change on this file since b10c621c was d67cdb7, checked in by Peter A. Buhr <pabuhr@…>, 8 years ago

merge

  • Property mode set to 100644
File size: 1.2 KB
RevLine 
[27dde72]1% ======================================================================
[db0fa7c]2\chapter{Introduction}
[27dde72]3% ======================================================================
4
[d67cdb7]5This proposal provides a minimal concurrency API that is simple, efficient and can be reused to build higher-level features. The simplest possible concurrency system is a thread and a lock but this low-level approach is hard to master. An easier approach for users is to support higher-level constructs as the basis of the concurrency, in \CFA. Indeed, for highly productive concurrent programming, high-level approaches are much more popular~\cite{HPP:Study}. Examples are task based, message passing and implicit threading. Therefore a high-level approach is adopted in \CFA
[db0fa7c]6
[d67cdb7]7There are actually two problems that need to be solved in the design of concurrency for a programming language: which concurrency and which parallelism tools are available to the programmers. While these two concepts are often combined, they are in fact distinct, requiring different tools~\cite{Buhr05a}. Concurrency tools need to handle mutual exclusion and synchronization, while parallelism tools are about performance, cost and resource utilization.
Note: See TracBrowser for help on using the repository browser.