Raymond Chen erklärt das mentale Modell hinter C++-Futures
C++ futures part 1: The mental model
Raymond Chen zerlegt die C++-Standardbibliothek und zeigt, dass std::promise, std::packaged_task, std::async, std::future und std::shared_future auf einer einzigen internen Klasse basieren, die er „source“ nennt. Mit einem vereinfachten Template führt er vor, wie Werte oder Exceptions einmalig gesetzt, threadsicher abgewartet und konsumiert werden – inklusive Mutex, Condition Variable und Union. Der erste Teil einer Serie, die er schreibt, weil er selbst immer wieder vergisst, wie das Zusammenspiel funktioniert.
Ich schreibe die Serie, weil ich immer wieder vergesse, wie es funktioniert, aber das Aufschreiben hilft mir, es mir zu merken.