• by ncmncm on 4/20/2020, 8:01:23 PM

    Parallelism giveth, and concurrency taketh away.

    Concurrency, as used by people who think hard about these things, is about what you do to keep a system coherent and balanced with parallel activities going on: the overhead of coordinating parallel activity that prevents you from getting ideal xN performance. This includes stuff you wouldn't need to do at all with one thread, and also stalls when coordinating access to shared resources.

    It doesn't include useful work not done in parallel because it's inherently serial, or that is thrown away because it was unnecessarily done more than once. That all is the domain of Amdahl's law.

  • by 1f60c on 4/20/2020, 4:48:54 PM

    I think a better title would be "What is the difference between concurrency and parallelism?" (that is, the title of the OP), and then leave a comment (on HN) saying "Questions like these on SO should be taught in CS-101". Just my 2ยข.

  • by CodeSheikh on 4/20/2020, 4:41:06 PM

    Questions like these on SO should be taught in CS-101. There are some amazing answers in there that I would have hard time finding in textbooks.

  • by jamesmunns on 4/20/2020, 10:02:10 PM

    It's a little overly succinct, but I've heard:

    Parallelism is for many things working at the same time. Concurrency is for many things waiting at the same time.