Correct behavior when used concurrently.

Operation that prevents progress until completion.

Using multiple threads within a process.

Concurrent algorithm avoiding traditional locks.

Operation allowing execution to continue while waiting.

Using multiple processes for computation.

Concurrent algorithm guaranteeing bounded progress.

Function invoked after an operation or event.

Switching CPU execution between tasks.

Object whose state cannot change after creation.