1. A multi-thread system, comprising: one or more processors; a task scheduler for a scheduling a plurality of tasks of a program to be executed on one or more worker threads, the task scheduler comprising: a task group component that creates task groups by assigning each of the plurality of tasks to a task group; a task group queue component that organizes the task groups according to a predetermined criteria in a task group queue and creates a hierarchy of task group queues; a worker thread pool including a group of worker threads each associated with one of a plurality of processor cores of at least one of the one or more processors; and a scheduler logic component operated by the processor, the scheduler logic component assigning the worker threads in the worker thread pool to execute the task group queues according to the hierarchy of task group queues, wherein the assigning by the scheduler logic component includes assigning a single one of the worker threads to a single one of the tasks of one of the task group queues to execute the single one of the tasks, and wherein each of the worker threads has an associated state used by the task scheduler for efficient scheduling, the state including an application identifier (ID) that is unique for each of the worker threads in the application and a task group ID that is unique for each of the worker threads in the task group.