Concurrent (Parallel) Programming: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
(Created page with "=Internal= * Programming Languages Concepts")
 
No edit summary
Line 1: Line 1:
=Internal=
=Internal=
* [[Programming_Languages_Concepts#Concurrent_.28Parallel.29_Programming|Programming Languages Concepts]]
* [[Programming_Languages_Concepts#Concurrent_.28Parallel.29_Programming|Programming Languages Concepts]]
* [[Programming_Languages_Concepts#Concurrent_Programming|Programming Languages Concepts]]
* [[Actor Model#Overview|Actor Model]]
=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|synchronization]] between tasks.
Implementations in programming languages:
* [[Go Language Concurrency]]
* [[Python Threads and Concurrency]]
=Synchronization=
<span id='Concurrency_and_Locking'></span>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#Overview|actor model]].

Revision as of 17:43, 31 August 2023

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.