Lukas' Notes

concurrency

Definition

Interleaving

Given threads with statement sequences , an interleaving is a total order on such that

The set of all interleavings is the exhaustive space of executions under any memory model that serialises memory operations.

Examples

Two threads

Let and . The local program orders are and .

All interleavings:

For threads with statements each,

For two equal-length threads this is ; here gives .

Because different runtimes, scheduling, and hardware can realise any interleaving, correctness arguments must account for all of them.