concurrency and parallelism

Concurrency is concerned with two or more activities happening at the same time, eg., thinking while walking is one form of concurrency. When talking about concurrency in computer programming we mean a single system performing multiple tasks independently. Although it is possible that concurrent tasks may be performed at same time, that’s where it becomes parallel, but it is not required.

Parallelism is concerned with running two or more activities in parallel with explicit goal of increasing the overall performance.

Thus all Parallel programs are Concurrent in nature but not vice-versa, as illustrated: