1. A method for scheduling a new thread, comprising: receiving a system call from an executing application for performing one selected from a group consisting of creating the new thread and modifying the new thread, wherein the system call comprises a priority value assigned by a developer of the executing application; detecting at least one dependent thread of the new thread; identifying a maximum criticality level from a criticality level of each of the at least one dependent thread; detecting a number of dependent threads of the new thread; assigning, by a hardware processor, a criticality level of the new thread based on the maximum criticality level, the priority value, and the number of dependent threads; selecting, by the hardware processor, a processor group from a plurality of processor groups according to the criticality level of the new thread and an existing assigned utilization level of the processor group to obtain a selected processor group; increasing an assigned utilization level of the selected processor group based on the new thread; and executing the new thread by the selected processor group.