Atomicity je vlastnost používá v souběžné programování popisovat operaci nebo sadu operací za běhu programu úplně, aniž by byl přerušen před ukončením jejich průběhu. Operace, která ověří tuto vlastnost, je kvalifikována jako „ atomová “, tento termín je odvozen od ατομος ( atomos ), což znamená „ten nelze rozdělit“.
Tento koncept se týká například části programu, jejíž proces nebo podproces, který jej spravuje, nepřinese monopol na určitá data jinému procesu v průběhu celé této části. Tento koncept platí také pro transakce s databázemi .
Obecně lze montážní pokyny považovat za atomové, ale to nestačí k zajištění konzistence dat. K tomu je třeba implementovat synchronizační mechanismy . V důsledku toho a rozšířením je možné říci, že takto chráněný úsek, označovaný jako kritický úsek chráněný vzájemným vyloučením , je také atomový.
Několik pokynů používaných v určitých paralelních architekturách je atomových a používají se k implementaci synchronizací nebo neblokujících algoritmů.
Často používáme pokyny Porovnat a vyměnit , Načíst a přidat nebo Testovat a nastavit , stejně jako několik pokynů Load-Link / Store-Conditional .
Transakční paměť je způsob, jak vytvořit řadu atomové transakce: transakce provést několik změn, a nepodaří-li některá z proměnných použitých byly změněny. Takový mechanismus se používá v databázích ve formě softwarové transakční paměti .