🎁 New User? Get 20% off your first purchase with code NEWUSER20 Register Now →
Menu

Categories

Programming Concepts Intermediate

What is Concurrency?

The ability of a program to manage multiple tasks that can make progress during overlapping time periods.

Concurrency is about dealing with multiple things at once (structure), while parallelism is about doing multiple things at once (execution). Concurrency models include threads (shared memory), processes (isolated memory), async/await (cooperative), and actors (message passing).

Challenges include race conditions, deadlocks, livelocks, and starvation. Synchronization primitives (mutexes, semaphores, channels) coordinate access to shared resources. Modern languages increasingly favor message passing and async/await over shared-memory threading.

Related Terms

Factory Pattern
A creational design pattern that provides an interface for creating objects without specifying their exact classes.
Functional Programming
A programming paradigm that treats computation as the evaluation of mathematical functions, avoiding state changes and mutable data.
Linked List
A linear data structure where elements are stored in nodes, each containing data and a pointer to the next node in the sequence.
Closure
A function that captures and retains access to variables from its enclosing scope, even after that scope has finished executing.
Thread
The smallest unit of execution within a process, allowing concurrent operations to run within a single program.
Code Smell
A surface indication in code that usually corresponds to a deeper problem in the system, suggesting the need for refactoring.
View All Programming Concepts Terms →