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