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?).