I am currently taking a couple of classes involving these concepts and in some circumstances, the terms 'concurrency' and 'parallelism' seem to be used interchangeably and in some circumstances there seems to be a difference. Are these terms synonymous? If not, what are the definitions of concurrency and parallelism and how are the concepts similar/different?
2 Answers
yes there is a difference.
Parallelism: Ability to execute tasks in parallel
Concurrency can be done with even single processing unit using time sharing. This will give you the illusion of things performed in parallel but they are not.
http://www.haskell.org/haskellwiki/Parallelism_vs._Concurrency
1 Comment
Andriy Tylychko
+1: interesting definition, never seen it before, isn't it local to Haskell community?