Dining Philosophers Problem III

Mit diesem Beitrag endet die Miniserie zu dem Dining Philiosophers Problem von Andre Adrian. Heute wendet der Autor mächtige Locks und Semaphoren an.

Hier geht's direkt zum Artikel auf Heise Developer: .

Gelesen: 1767

Dining Philosophers Problem II

Im letzten Beitrag "Dining Philosophers Problem I" begann Andre Adrian seine Analyse der klassischen Problemstellung. Heute verwendet er Atomics, Mutexe und Locks.

Hier geht's direkt zum Artikel auf Heise Developer: .

Gelesen: 1775

Dining Philosophers Problem I

Andre Adrian hat das klassische Dining Philosophers Problem auf verschiedene Weise mit modernem C++ gelöst. Nun freue ich mich, diesen Artikel in drei aufeinanderfolgenden Beiträgen zu veröffentlichen.

Hier geht's direkt zum Artikel auf Heise Developer: .

Gelesen: 1862

Task Blocks

Task Blocks setzen das beliebte Fork-Join Paradigma für die parallele Ausführung von Aufgaben um.

Weiterlesen...
Gelesen: 12087

Transactional Memory

Transactional Memory basiert auf der Idee der Transaktion aus der Datenbanktheorie. Transactional Memory soll den Umgang mit mehreren Threads deutlichen vereinfachen. Zum einen verhindern sie kritische Wettläufe und Verklemmungen, zum anderen können Transaktionen komponiert werden.

Weiterlesen...
Gelesen: 12046

Coroutinen

Coroutinen sind Funktionen, die ihren Ablauf unterbrechen und wieder aufnehmen können und dabei ihren Zustand behalten. Die Evolution in C++20 geht einen deutlichen Schritt weiter.

Weiterlesen...
Tags: C++20
Gelesen: 17455

Latches und Barriers

Latches und Barriers sind einfache Thread Synchronisierungsmechanismen, die es erlauben, mehrere Threads warten zu lassen, bis eine Operation fertig ist. Latches und Barriers soll es in drei Geschmacksrichtungen in C++20 geben: std::latch, std::barrier und std::flex_barrier.

Weiterlesen...
Tags: C++20
Gelesen: 13528

std::future Erweiterungen

Tasks in der Form von Promisen und Futuren in C++11 genießen einen ambivalenten Ruf. Zum einen sind sie deutlich leichter zu verwenden als Threads oder Bedingungsvariablen, zum anderen besitzen sie eine große Unzulänglichkeit. Sie können nicht komponiert werden. Mit dieser Unzulänglichkeit räumt C++20 auf.

Weiterlesen...
Tags: Tasks, C++20
Gelesen: 17641

Atomare Smart Pointer

C++20 wird atomare Smart Pointer erhalten. Ganz genau wird es ein std::atomic_shared_ptr und ein std::atomic_weak_ptr sein. Warum eigentlich, std::shared_ptr und std::weak_ptr sind doch schon thread-sicher. Jein. Da muss ich ein wenig ausholen.

Weiterlesen...
Gelesen: 14949

Abonniere den Newsletter (+ pdf Päckchen)

Beiträge-Archiv

Sourcecode

Neuste Kommentare