Az atomicitás az a tulajdonság, amelyet a párhuzamos programozás során használnak egy teljesen lefutott program egy műveletének vagy műveletsorának leírására anélkül, hogy megszakítanák őket a tanfolyam vége előtt. Egy műveletet, amely ellenőrzi ezt a tulajdonságot, " atomnak " minősítik , ez a kifejezés az ατομος ( atomos ) szóból ered, ami azt jelenti, hogy "nem lehet osztani".
Ez a koncepció például egy olyan program egy részére vonatkozik, amelynek folyamata vagy az azt kezelő szál nem engedi át bizonyos adatok monopóliumát egy másik folyamatnak a rész teljes lefolyása alatt. Ez a fogalom az adatbázisok tranzakcióira is vonatkozik .
Általában az összeszerelési utasításokat atomnak lehet tekinteni, de ez nem elegendő az adatok konzisztenciájának biztosításához . Ehhez szinkronizációs mechanizmusokat kell megvalósítani. Következésképpen és kiterjesztve elmondható, hogy az így védett szakasz, amelyet kölcsönös kizárással védett kritikus szakasznak nevezünk , szintén atom.
Bizonyos párhuzamos architektúrákban használt számos utasítás atomikus, és szinkronizálások vagy nem blokkoló algoritmusok megvalósítására szolgál.
Gyakran használjuk az Összehasonlítás és cserélés , Fetch-and-add vagy Test-and-set utasításokat, valamint a pár Load-Link / Store-Conditional utasításokat .
A tranzakciós memória egy módja az atomi tranzakciók sorozatának: egy tranzakció több változtatás végrehajtására, és kudarcot vall, ha néhány használt változót megváltoztattak. Ezt a mechanizmust alkalmazunk adatbázisok formájában szoftver tranzakciós memória .