W oprogramowaniu schemat pamięci transakcyjnej jest sposobem postępowania dla programowania wielowątkowego, które wykorzystuje transakcje, które są bardzo podobne do tych, których używa baza danych. Gdy co najmniej dwa wątki próbują uzyskać dostęp do tych samych danych w tym samym czasie, może wystąpić wiele różnych niepożądanych sytuacji, w których wynik programu zależy od kolejności dostępu do wątku. Zwykle pożądana jest jedna kolejność, a w przypadku wielowątkowości blokady są dominującym i najprostszym sposobem zapewnienia, że tylko jeden wątek ma dostęp do określonego zasobu w danym momencie.
Takie podejście do pamięci transakcyjnej zawiera wiele problemów związanych z blokadami w wielowątkowości. Blokada może stać się trwała, jeśli wystąpi jakiś nieoczekiwany błąd, a blokady mogą spowodować nieprzewidywalne problemy ze współbieżnością, takie jak zakleszczenie lub odwrócenie priorytetów. Ponieważ blokady są bardzo precyzyjne, inny problem obejmuje kod, który ostatecznie spędza większość czasu między blokowaniem, przełączaniem kontekstu i odblokowaniem. Jest to kluczowy problem, ponieważ może spowodować, że kod będzie spędzał więcej czasu na tych czynnościach niż na wykonywaniu innych, ważnych prac w programie. W przeciwieństwie do tego, blokady gruboziarniste mogą powodować zmniejszenie wydajności przetwarzania i zmniejszenie współbieżności.
Problemy w pamięci transakcyjnej są rozwiązywane przez zaawansowane blokady, w tym „blokada blokady” z C#, blokady odczytu i zapisu, bariery zapisu itp. Jednym z głównych priorytetów w odniesieniu do pamięci transakcyjnej jest brak blokad i niepotrzebny czas przetwarzania blokad . Zwykle przyjmuje się, że udostępniana struktura danych jest wolna od blokad, jeśli jej operacje nie wymagają wzajemnego wykluczania. Struktury danych, które są współużytkowane i wolne od blokad, pozwalają uniknąć typowych problemów związanych ze standardowymi technikami blokowania, jeśli znajdują się one w systemach, które są wysoce współbieżne.
Model Transactional Memory Coherence and Consistency (TCC) to nowy, proponowany model pamięci współdzielonej. Zgodnie z modelem transakcje atomowe są niezmiennie podstawowymi jednostkami następujących elementów: praca równoległa, spójność pamięci, komunikacja i spójność odniesienia do pamięci. Model TCC upraszcza również oprogramowanie równoległe, eliminując synchronizację wykorzystującą standardowe blokady lub semafory. Za pomocą sprzętu TCC łączy również każdy zapis z każdego regionu wystąpienia transakcji w jeden pakiet, aby niepodzielnie rozgłaszać pakiet do stanu pamięci, który jest stale współdzielony. Oprócz uproszczonego sprzętu koherencji oznacza to zmniejszenie liczby potrzebnych komunikatów o niskim stanie uśpienia oraz całkowitą eliminację niektórych standardowych protokołów koherencji.