I like the distinction provided in this hn comment <a href="https://news.ycombinator.com/item?id=5711232#up_5714834" rel="nofollow">https://news.ycombinator.com/item?id=5711232#up_5714834</a>
He did a similar talk in 2012 titled 'Concurrency is not Parallelism'<p>Link: <a href="http://vimeo.com/49718712" rel="nofollow">http://vimeo.com/49718712</a>
Very nice talk. I too sometimes get confused in what true concurrency means. Also, I think people are not looking at this because of the "msdn" :P
I like this definition: <a href="https://news.ycombinator.com/item?id=5715394" rel="nofollow">https://news.ycombinator.com/item?id=5715394</a><p>Concurrency is a property of the problem - no dependencies between tasks. Parallelism is a solution which uses that property.<p>This definition doesn't require (erroneous) distinctions between single and multicore systems. If I use a single core system to emulate a multicore system complete with emulated clock cycles and what not, are the emulated programs running concurrently or in parallel? From which point of view? The definition shouldn't dictate an implementation.