Concurrency is progressing on more than one task over a period of time by switching between tasks, e.g.:
No task occurs simultaneously.
If the switching occurs fast enough, each process will appear to be progressing simultaneously. As CPUs can process data at a much faster rate than human perception, we can multi-task on a PC with a single CPU core.
Parallelism splits tasks into smaller subtasks that progress independently:
Unlike Concurrency:
Parallelism can reduce the time it tasks to complete a task.
However, parallel processes often need to ‘come together to share information.