Title: Concurrency
Author: Kriko
Published: May 25, 2023
Last modified: Jul 7, 2026

---

 1.  [Home](https://kriko.io/) /
 2.  [Glossary](https://kriko.io/glossary) /
 3.  C Letter

# Concurrency

**Concurrency** is a computing approach in which the progress of multiple tasks 
is managed within the same period. These tasks do not necessarily have to run physically
at the exact same moment. A single-processor system can switch rapidly between tasks
and allow them to make overlapping progress. When multiple tasks are executed simultaneously
on separate processor cores, the process is more accurately described as parallel
computing.

Concurrent systems aim to use computing resources more efficiently and improve application
responsiveness. For example, an application can continue operating while it waits
for data from a network request. This approach can be used on personal computers,
servers, mobile applications and distributed systems. It is particularly valuable
in systems that must manage many independent tasks or user requests.

Processes or threads within a concurrent program may progress independently. However,
coordination is required when they access the same memory, file or system resource.
Synchronisation mechanisms ensure that shared resources are accessed in a controlled
manner. Without appropriate controls, problems such as race conditions, inconsistent
data and deadlocks may occur.

Concurrency is not limited to big data environments. Web servers, operating systems,
messaging applications, games and user interfaces can all use concurrent processing.
In big data systems, separate portions of a dataset may be processed within the 
same period and distributed across multiple machines. Memory allocation, network
communication and processing order must be managed carefully in these environments.

**Multithreading** allows multiple threads to operate within the same program process.
Threads may share the same memory, making communication between them relatively 
fast. However, uncontrolled access to shared resources can produce incorrect or 
inconsistent results. Locks, semaphores and other synchronisation tools may therefore
be required.

**Asynchronous programming** allows a program to continue with other work while 
it waits for an operation to finish. For example, an application may accept another
user command while waiting for a server response. This approach is particularly 
useful for network, file and database operations that involve considerable waiting
time. However, asynchronous programming does not automatically mean that tasks are
running simultaneously or in parallel.

**Pre-emptive multitasking** allows the operating system to control how running 
tasks use the processor. The system can interrupt one task and assign processing
time to another. This prevents a single program from continuously occupying the 
processor and helps maintain responsiveness. Task switching and priority management
are handled by the operating system scheduler.

Concurrent programming can improve performance and resource utilisation, but it 
can also make software development more complex. The order in which tasks finish
may not always be predictable, and the same program may behave differently across
separate executions. Shared data, error handling and dependencies between tasks 
must therefore be designed carefully. When implemented correctly, concurrency can
make systems more scalable, efficient and responsive.

## Discover it in the dictionary

###  Email Marketing

Email marketing is a digital marketing method in which brands send promotional, 
informational, campaign-related, announcement, content, reminder or customer relationship
messages to permission-based user…

###  Data Visualisation

Data visualisation is the practice of presenting information through charts, maps,
diagrams and other visual formats. It helps users understand complex datasets and
identify…

###  Information Processing Cycle

The information processing cycle refers to the stages through which raw data is 
transformed into meaningful information. During this process, data is entered into…

###  Agile Project Management

Agile project management is an approach in which projects are divided into smaller
parts and managed through continuous feedback and improvement cycles so that…

###  Churn Rate

Churn Rate is an important customer metric that shows the percentage of customers
a business loses within a specific period. It is calculated based…

###  Meta Title

Meta title is a commonly used SEO term that refers to the title of a web page as
it appears in search engine results.…

###  SEO-Friendly Content

SEO-friendly content refers to website content prepared in a way that aligns with
both user search intent and search engine evaluation criteria. SEO stands…

###  Interactive Content

Interactive content is a type of content in which users do not remain only as viewers,
listeners or readers; instead, they actively participate by…

###  Encode

Encoding is the process of converting information into a specific format or structure
so that it can be transmitted, stored or processed by another…

## Track the digital heartbeat  with Kriko

Subscribe to receive curated insights, news, and ideas shaping the digital landscape.

  By checking this box, you acknowledge and accept our [privacy policy](https://kriko.io/privacy-policy).