Począwszy od wersji kompilatora Microsoft Visual Studio 2005 słowo kluczowe volatile służy do definiowania barier częściowych. Dzięki temu odczyt danych z obiektu zadeklarowanego jako volatile tworzy barierę typu „zajmij” (), a zapis barierę typu „zwolnij” (). Pozwala to na tworzenie sekcji krytycznych w programowaniu wielowątkowym.

W przypadku kompilatora GCC, stosowanie słowa kluczowego volatile jest niewystarczające dla uzyskania bariery pamięci i należy dodatkowo stosować rozszerzenie języka do jej jawnego zadeklarowania w postaci:

asm volatile ("" : : : "memory");

C# Wśród klas biblioteki standardowej znajdują się funkcje, które implementują pełną barierę pamięci: wszystkie metody w klasie Interlocked niektóre metody w klasie Thread: Thread.MemoryBarrier, Thread.VolatileRead, Thread.VolatileWrite wbudowany w język mechanizm tworzenia sekcji krytycznych, za pomocą słowa kluczowego lock bądź odpowiadających mu metod Monitor.Enter i Monitor.Exit.

Inną metodą definiowania częściowych barier jest stosowanie słowa kluczowego volatile w deklaracji zmiennej. Informuje ono kompilator, żeby wygenerować barierę typu „zajmij” () przy odczycie zmiennej, oraz barierę typu „zwolnij” () podczas zapisu zmiennej.