1. A computer-implemented method, comprising: determining an actual power consumption of each running thread during a given context switch interval; associating a priority level with each of a plurality of active threads in a next context switch interval based on actual power consumption determined for each running thread in the given context switch interval; 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 higher priority 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 priority of non-selected threads among the plurality of active threads, wherein the elevated priority is used to select the non-selected threads in a future context switch interval.