Ada is one of very few programming languages that support multi-threading as part of the language, as opposed to libraries.

Last year, we showed how Ada makes it easy to turn a single-threaded program into a multi-threaded program. We ended up with ten thousand threads working concurrently. I will briefly recap this first episode and then continue with the same program, introducing a task pool wherein a small number of threads (one per processor core) process thousands of small work units.