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