Very nice guide to Threads and Processes

Concurrency vs Paralleism b y Backblaze
Concurrency vs parallism by Backblaze.

In my experience, if you ask most programmers to explain the difference between processes and threads they will struggle a bit. Even trickier is the difference between concurrency and parallelism. I wasn’t 100% sure myself.  Do you know the difference between multi-threading and multiprocessing?

This article on the Backblaze website is one of the nicer explanations of threads vs processes and I would recommend it to anyone. Backblaze is a backup solution that uploads your files (and subsequent changes) to their site. When I first moved into my home I used Backblaze but had to abandon it (not their fault!) because my internet was abysmally slow. It told me it would take a year to do the first upload!

Although in C, multi-threading/multi-processing is not that common, it is in other languages and with the trend towards more and more cores (my CPU is five years old and has 6 cores or 12 with hyper-threading), so writing software that only uses one thread is wasting a lot of processing power.