A method to be implemented in a computer system comprising a processor and a memory, the method for managing a run queue comprising a first plurality of threads (1104-1 - 1104-5) each having a respective thread wake-up time and a respective thread priority, the first plurality of threads (1104-1 - 1104-5) being sorted according to their thread wake-up times, the first plurality of threads (1104-1 - 1104-5) being a first linked list data structure including one or more reference pointers between threads of the first plurality of threads (1104-1 - 1104-5), the method comprising: in an amount of time equal to an amount of time to insert a single thread into the run queue, associating a second plurality of threads (1104-2 - 1104-8), each having the same thread wake-up time and a respective thread priority, the second plurality of threads (1104-2 - 1104-8) being sorted with the run queue with regard to their respective thread wake-up time, the associating maintaining a thread wake-up time based scheduling semantic of the run queue, where the second plurality of threads (1104-2 - 1104-8) is a second linked list data structure including one or more reference pointers between threads of the second plurality of threads (1104-2- 1104-8) and comprising a root thread that is operatively coupled to one or more other threads in the second plurality, the root thread having a priority, and each of the other threads of the second plurality of threads (1104-2- 1104-8) includes a respective priority that is a lower priority or an equal priority as compared to the priority of the root thread; wherein associating the second plurality of threads (1104-2- 1104-8) with the run queue further comprises inserting only the root thread of the second plurality of threads (1104-2 - 1104-8) into the run queue to represent the second plurality of threads (1104-2 - 1104-8), wherein inserting the root thread comprises inserting the root thread into a position in the first linked list data structure; executing and removing the root thread from the run queue; and responsive to removing the root thread, inserting a next thread of the second plurality into the run queue such that the thread wake-up time based scheduling semantic of the run queue is preserved. in an amount of time equal to an amount of time to insert a single thread into the run queue, associating a second plurality of threads (1104-2 - 1104-8), each having the same thread wake-up time and a respective thread priority, the second plurality of threads (1104-2 - 1104-8) being sorted with the run queue with regard to their respective thread wake-up time, the associating maintaining a thread wake-up time based scheduling semantic of the run queue, where the second plurality of threads (1104-2 - 1104-8) is a second linked list data structure including one or more reference pointers between threads of the second plurality of threads (1104-2- 1104-8) and comprising a root thread that is operatively coupled to one or more other threads in the second plurality, the root thread having a priority, and each of the other threads of the second plurality of threads (1104-2- 1104-8) includes a respective priority that is a lower priority or an equal priority as compared to the priority of the root thread; wherein associating the second plurality of threads (1104-2- 1104-8) with the run queue further comprises inserting only the root thread of the second plurality of threads (1104-2 - 1104-8) into the run queue to represent the second plurality of threads (1104-2 - 1104-8), wherein inserting the root thread comprises inserting the root thread into a position in the first linked list data structure; executing and removing the root thread from the run queue; and responsive to removing the root thread, inserting a next thread of the second plurality into the run queue such that the thread wake-up time based scheduling semantic of the run queue is preserved.