🎁 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

Data Structure
A way of organizing and storing data in a computer so it can be accessed and modified efficiently.
SOLID Principles
Five design principles for writing maintainable, flexible object-oriented code: Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion.
DRY (Don't Repeat Yourself)
A software development principle that aims to reduce code duplication by abstracting common patterns into reusable components.
Recursion
A programming technique where a function calls itself to solve a problem by breaking it into smaller subproblems.
Design Pattern
A reusable solution template for commonly occurring problems in software design.
Dependency Injection
A design pattern where objects receive their dependencies from external sources rather than creating them internally.
View All Programming Concepts Terms →