The existing has support for a single queue which is executed on a first in first out bases (fifo). This has a poor limit as it make it impossible to balance the load between tasks. An example would be backgrounding a lot of releatively unimportant taks then not being able to execute a high priority task as quickly as possible in the standard thread pool. It would also not permit the programmer to be able to balance task's. In that case of having a maximum number of threads (eg 5) for task X and a larger number of tasks (eg 20) for task Y.