๐ŸŽ New User? Get 20% off your first purchase with code NEWUSER20 ยท โšก Instant download ยท ๐Ÿ”’ Secure checkout 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

Composition over Inheritance
A design principle favoring object composition (has-a relationships) over class inheritance (is-a relationships) for code reuse.
SOLID Principles
Five design principles for writing maintainable, flexible object-oriented code: Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion.
Technical Debt
The implied cost of additional rework caused by choosing a quick solution now instead of a better approach that would take longer.
Binary Search
An efficient search algorithm that finds a target value in a sorted array by repeatedly dividing the search interval in half.
Stack vs Heap
Two memory regions: the stack stores function call data with automatic cleanup, while the heap stores dynamically allocated objects.
Stack
A data structure that follows Last-In-First-Out (LIFO) ordering, where elements are added and removed from the same end (top).
View All Programming Concepts Terms โ†’