Concurrency
- different parts or units of a program, algorithm, or problem to be executed out-of-order or in partial order, without affecting the outcome.
- enables a program to deal with multiple tasks even on a single CPU core; the core switches between tasks (i.e. threads) without necessarily completing each one
Parallelism:
- many calculations or processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time