1. A computer-implemented method, comprising: determining an actual power consumption of for each of a plurality of running threads during a given context switch interval; adding the actual power consumption of each of the plurality of running threads to an accumulative power consumption of each of a corresponding plurality of active threads; sorting the plurality of active threads in ascending order based on the accumulative power consumption; associating a priority level with each of the plurality of active threads in a next context switch interval based on the accumulative power consumption, wherein a group of threads that have a same accumulative power consumption value are assigned a same priority level, and wherein a lower, accumulative power consumption is associated with a higher priority level; predicting a new power consumption expected for each of the plurality of active threads during the next context switch interval in a current instruction window by determining a power consumption estimate for a number of instructions expected to be executed for each of the plurality of active threads; selecting a set of one or more threads among the plurality of active threads that have the higher priority level than other active threads and based on the new power consumption predicted for each of the plurality of active threads in the current instruction window; and elevating the priority level of non-selected threads among the plurality of active threads, wherein the elevated priority level is used to select the non-selected threads in a future context switch interval.