Overview of language primitives for parallel and distributed programming.
| Concept | Primitives | Goal |
| Parallelism | ||
| Co-routines | resume | pseudo-parallelism |
| Parallel statements | parbegin statement | true parallelism |
| Parallel loops | parfor statement | true parallelism |
| Processes | fork, join statement | true parallelism |
| Shared variables | ||
| Polling | test variable | condition synchronization |
| Locks | lock, unlock | mutual exclusion |
| Semaphores | P, V | mutual excl., cond. synch. |
| Monitors | wait, signal | mutual excl., cond. synch. |
| Message passing | ||
| Message passing | send to, recieve [from] | 1-way message passing |
| Rendezvous | entry call, accept | 2-way message passing |
| RPC | call, shared var. synch. | 2-way message passing |
| Select statement | select | nondeterminism |
| Mixed models | ||
| Tuple Space | read, in, out | general communication |
| Shared objects | abstract data types | general communication |