Software Transactional MemoryΒΆ
A high level abstraction to simplify concurrent programming. It allows a group of read/write instructions to execute in an atomic way.
It is optimistic.
It is an alternative to lock-based synchronization, which is pessimistic (and a lower level construct?).