현대의 다중 스레드 응용 프로그램에서 사용하는 락(lock)과 달리, 트랜잭셔널 메모리는 보다 낙관적인 전략을 사용한다. 트랜잭셔널 메모리를 사용하는 스레드는, 다른 스레드에서 실행되는 코드가 해당 메모리를 간섭하지 않을 것으로 가정하고 읽기 및 쓰기를 수행하며, 읽기와 쓰기를 수행한 메모리의 주소를 기록한다. 트랜잭션 영역의 수행이 완료되면, 해당 메모리 주소가 다른 스레드에 의해 변경되었는지 검사한다. 만약 변경이 없었다면, 트랜잭션은 올바르게 수행되었으므로 커밋(commit)이 이루어지고, 그렇지 않으면 트랜잭션은 실패한다. 트랜잭션이 실패했을 경우 트랜잭션을 재시도할지, 아니면 취소할지는 프로그래머가 선택할 수 있다. 또한 트랜잭션은 언제든 중간에 취소하여 트랜잭션 수행 이전 상태로 되돌아갈 수 있다.

기존의 락 기법에 비해 트랜잭셔널 메모리의 장점은, 더 많은 스레드가 동시에 수행될 수 있다는 것이다. 락이 해제되길 기다리며 대기하는 스레드가 없고, 충돌이 일어나지 않으면 모든 스레드가 자신의 코드 영역을 안전하게 수행할 수 있다.

그러나, 트랜잭셔널 메모리는 읽기 및 쓰기를 수행한 메모리 주소를 기록하는 오버헤드로 인해 약간의 성능 저하가 존재한다. 소프트웨어적으로 구현한 트랜잭셔널 메모리의 경우 이 오버헤드가 큰 편이다.
트랜잭셔널 메모리의 작업 수행 능력을 떨어뜨리는 부분의 명칭은 무엇인가?
오버헤드