Brussels / 31 January & 1 February 2015


Multithreading Made Easy, part 3 - Bounded Work Queues

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

In the previous two episodes, 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 then introduced a task pool and work queue wherein a small number of threads (one per processor core) process thousands of small work units. But the work queue could become very big. In this third and last episode, we show how to restrict the size of the work queue to a fixed limit, thereby preventing denial-of-service attacks.

This presentation will feature live editing of source code, compilation and debugging. Questions from beginners are encouraged. It is not necessary to have attended the first installments. The sources of our example program will be provided to those who want to tinker with them.


Photo of Ludovic Brenta Ludovic Brenta