All at once? What if I have millions of tasks rather than a few? I want
to be working on 2 tasks all the time. If my queue is not empty, then
as a thread ends, it sees there are more tasks in the queue and gets
one.
You only launch *two* tasks. They keep going back to the
queue to get new work when they finished their current item.