Jego realizacja rzeczywista wymaga wsparcia sprzętowego i nie może być zaimplementowana jako funkcja wysokiego poziomu.

<< operacja atomowa >> function FetchAndAdd(address location) { int value := *location *location := value + 1 return value

x86 W architekturze x86 od wersji procesora 8086 istnieje instrukcja ADD, w której jednym z argumentów docelowych może być adres w pamięci. Jeśli ową instrukcję poprzedzi się prefiksem LOCK, to jej działanie stanie się operacją atomową w systemach wieloprocesorowych. Jednak za jej pomocą nie można odczytać oryginalnej wartości z pamięci (chociaż można odczytać pewne flagi). Tę możliwość wprowadzono dopiero w procesorze 486 za pomocą instrukcji XADD.

Języki wysokiego poziomu C++ Początkowo standard języka C++ nie definiował metody dla operacji fetch-and-add. Taka funkcjonalność była dostępna dzięki wsparciu systemu operacyjnego, bądź jako rozszerzenie kompilatora. Wraz z pojawieniem się C++11, pojawiły się standardowe mechanizmy ułatwiające korzystanie z wątków takie jak: atomic_fetch_add, atomic_fetch_add_explicit.