The idea of this glossary is by no means to be exhaustive.


A transaction is an action that has the properties Atomicity, Consistency, Isolation, and Durability (ACID). Except for durability, all properties hold for transactional memory in C++.

  • Atomicity: either all or no statement of the block is performed.
  • Consistency: the system is always in a consistent state. All transactions build a total order.
  • Isolation: each transaction runs in total isolation from the other transactions.

Callable Unit

A callable unit (short callable) is something that behaves like a function. Not only are these named functions, but also function objects and lambda functions. If a callable accepts one argument, it’s called unary callable; accepting two arguments is called binary callable.

Predicates are special functions that return a boolean as a result.


Concurrency means that the execution of several tasks overlaps. Concurrency is a superset of parallelism.

Critical Section

A critical section is a section of code that should be executed in an atomic fashion following the ACID properties.

The ACID properties are typically guaranteed with mutual exclusion primitives such as mutexes, or with transactions such as transactional memory.

Function Objects

First of all, don’t call them functors. That’s a well-defined term from a branch of mathematics called category theory.

Function objects are objects that behave like functions. They achieve this by implementing the function call operator. As function objects are objects, they can have attributes and therefore state.

Get hands-on with 1000+ tech skills courses.