quoting the article:<p>> Concurrency is like having two threads running on a single core CPU.<p>> Parallelism is like having two threads running simultaneously on different cores<p>> It is important to note that parallelism implies concurrency but not the other way round.<p>Aurgh! I don't think this attempted definition-by-simile is helpful, or even somewhat correct.<p>I much prefer yosefk's way of framing things:<p>> > concurrent (noun): Archaic. a rival or competitor.<p>> > Two lines that do not intersect are called parallel lines.<p>...<p>> Computation vs event handling<p>> With event handling systems such as vending machines, telephony, web servers and banks, concurrency is inherent to the problem – you must resolve inevitable conflicts between unpredictable requests. Parallelism is a part of the solution - it speeds things up, but the root of the problem is concurrency.<p>> With computational systems such as gift boxes, graphics, computer vision and scientific computing, concurrency is not a part of the problem – you compute an output from inputs known in advance, without any external events. Parallelism is where the problems start – it speeds things up, but it can introduce bugs.<p>...<p>> concurrency is dealing with inevitable timing-related conflicts, parallelism is avoiding unnecessary conflicts<p>yosefk's whole essay about this is great: <a href="https://yosefk.com/blog/parallelism-and-concurrency-need-different-tools.html" rel="nofollow">https://yosefk.com/blog/parallelism-and-concurrency-need-dif...</a>