1. A method for executing a plurality of threads, comprising: determining a thread quantized priority value for a first thread based on run time information associated with the first thread; assigning the first thread to one of a plurality of thread buckets, each of the plurality of thread buckets having a bucket priority value; mapping the thread quantized priority value to a thread specified priority value of the first thread; mapping a quantum value associated with the first thread to the thread specified priority value, the quantum value identifying a maximum amount of time that the first thread is allowed to run before being preempted by a second thread; adding the first thread to a ready to run queue; selecting a thread from the plurality of threads to run from the ready to run queue based on the bucket priority value, mapped thread quantized priority value, and mapped quantum value; running the selected thread in a processor of a computing device; and increasing the quantum value associated with the first thread in order to extend the maximum amount of time that the first thread is allowed to execute before being preempted by the second thread.