geheugenordering
Geheugenordering is het begrip dat beschrijft hoe geheugenbewerkingen in multithreaded programma's waarneembaar zijn. Het gaat om de volgorde waarin reads en writes aan gedeelde geheugenlocaties lijken te plaatsvinden, en hoe die volgorde kan verschillen tussen software en hardware.
Geheugenordering wordt vastgelegd in geheugenmodellen. Sommige systemen geven sequentiële consistentie, waardoor alle threads een uniforme volgorde
Hardware en coherentie: moderne CPUs reorderen instructies en gebruiken cache-coherentieprotocollen zoals MESI. Geheugenbarrières (fences) en semantiek
Programmeeromgevingen: talen zoals C++ en Java hebben hun eigen geheugenmodellen. In C++11+ geven atomic-variabelen en memory_order-parameters
Praktisch: foutief gebruik van zwakke ordering veroorzaakt data races en onvoorspelbaar gedrag. Correcte synchronisatie met mutexen,