Concurrent (Parallel) Programming

From NovaOrdis Knowledge Base
Revision as of 17:43, 31 August 2023 by Ovidiu (talk | contribs)
Jump to navigation Jump to search

Internal

Overview

Concurrency and parallelism refer to slightly different things, but we discuss about concurrent (parallel) programming just because we some time search for "concurrent" and other times search for "parallel".

Concurrent programming (or concurrency) is the management of multiple tasks that exist, and possibly execute, at the same time. Concurrent programming includes management of task execution, communication between tasks and synchronization between tasks.

Implementations in programming languages:

Synchronization

A way to address concurrent updates of shared state in concurrent programming is to use locks. Locks are problematic because they rely of the capacity of the programer to identify problem areas that require concurrent access protection. As the complexity of the program increases, the reliance of this capacity may become problematic.

An alternative approach is to use an actor model.