Lekce 10 - Atomické proměnné v C++ podruhé - Spinlock
V minulé lekci, Atomické proměnné v C++ prakticky, jsme si procvičovali atomické proměnné v C++ a lock-free programování.
V dnešní lekci budeme pokračovat, naučíme se používat instrukci CAS a naimplementujeme si svůj vlastní mutex.
Compare and exchange
Compare and Exchange nebo také Compare and Swap či CAS je atomická instrukce v moderních procesorech. Jedná se o tzv. read - modify - write instrukci, tedy instrukci, která atomicky provádí všechny tři operace - přečte hodnotu, změní ji a zapíše zpět. Než si ji vysvětlíme blíže, podívejme se na její deklaraci v C++:
bool atomic<T>::compare_exchange_weak( T& expected, T desired); bool atomic<T>::compare_exchange_strong( T& expected, T desired);
Metoda funguje tak, že porovná aktuální hodnotu proměnné s prvním parametrem. Pokud jsou hodnoty stejné, atomické proměnné se nastaví hodnota druhého parametru a metoda vrátí
...konec náhledu článku...
Pokračuj dál
Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.
Koupit tento kurz
Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.
- Neomezený a trvalý přístup k jednotlivým lekcím.
- Kvalitní znalosti v oblasti IT.
- Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.
Popis článku
Požadovaný článek má následující obsah:
V C++ tutoriálu pokračujeme v praktickém programování s atomickými proměnnými, naučíme se používat instrukci CAS a naimplementujeme si svůj vlastní mutex.
Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.