http://www.lenholgate.com/blog/images/Efficient-MultiThreading-6.png