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