Dealing with Mutation: Guarded Suspension

Guarded Suspension applies a unique strategy to deal with mutation. It signals when it is done with its modification.

Read more
Views: 1872

Dealing with Mutation: Thread-Safe Interface

I continue my journey with concurrency patterns in today's post. The Thread-Safe Interface fits very well when the critical sections are just objects.

Read more
Views: 2458

Dealing with Mutation: Locking

Locking is a classical way to protect a shared, mutable state. Today, I will present the two variants, Scoped Locking and Strategized Locking.

Read more
Views: 2358

Dealing with Sharing

If you don’t share, no data races can happen. Not sharing means that your thread works on local variables. This can be achieved by copying the value, using thread-specific storage, or transferring the result of a thread to its associated future via a protected data channel.

Read more
Views: 5526

Concurrency Patterns

There are many well-established patterns used in the concurrency domain. They deal with synchronization challenges such as sharing and mutation but also with concurrent architectures. Today, I will introduce and dive deeper into them in additional posts.

Read more
Views: 4674

Reactor

Event-driven applications, such as GUIs or servers, often apply the architecture pattern Reactor. A Reactor can accept multiple requests simultaneously and distribute them to different handlers.

Read more
Views: 5767

Model-View-Controller

The Model-View-Controller (MVC) is one of the classic architectural patterns from the book "Pattern-Oriented Software Architecture, Volume 1". It addresses interactive applications with a  flexible human-machine interface.

Read more
Views: 7371

Broker

The Broker Pattern structures distributed software systems that interact with remote service invocations. It is responsible for coordinating the communication, its results, and exceptions.

Read more
Views: 6014

Pipes-and-Filters

The Pipes-and-Filters architecture pattern describes the structure of systems that process data streams.

Read more
Views: 10366

Layers

The layers pattern splits a task into horizontal layers. Each layer has a specific responsibility and provides a service to a higher layer.

Read more
Views: 6227

Stay Informed about my Mentoring

 

Mentoring

English Books

Course: Modern C++ Concurrency in Practice

Course: C++ Standard Library including C++14 & C++17

Course: Embedded Programming with Modern C++

Course: Generic Programming (Templates)

Course: C++ Fundamentals for Professionals

Course: The All-in-One Guide to C++20

Course: Master Software Design Patterns and Architecture in C++

Subscribe to the newsletter (+ pdf bundle)

All tags

Blog archive

Source Code

Visitors

Today 1311

Yesterday 6503

Week 27568

Month 7814

All 12086023

Currently are 292 guests and no members online

Kubik-Rubik Joomla! Extensions

Latest comments