Continuing the blog theme of words that might be thought of as synonyms, but usually aren't, I'd like to point out the difference between parallelism and concurrency.
Parallelism and concurrency are distinct, but related concepts, and the easiest way to explain both the difference and the relationship is by means of a simple illustration.
Imagine you are teaching a class of boisterous 6 year-olds...
Each child firmly believes that their comment or request should occupy the teacher's undivided attention...
If the teacher is to handle all these requests at once, she must develop a way to look after all the children, all at once.
This is an example of concurrency.
If the teacher now has help from a classroom assistant, the teacher need only handle some of the requests, whilst the assistant handles the remainder. The task of teaching the class has now been divided into two parts that can be handled independently.
This is an example of parallelism.
Since the two teachers have subdivided the handling all the children's requests, they are therefore acting in parallel with respect to the larger task of teaching the class.
However, unless you have the same number of teachers as pupils, each teacher will still need to behave in a concurrent manner with respect to the group of children they are teaching.
So we can see that concurrency and parallelism are distinct, but related tasks.
Now you can go and play outside…