1. A method of scheduling fetch operations to (N) different threads in a multithreaded environment wherein a first predetermined number (M) of fetch operations may be carried out in a given cycle, said method comprising the steps of: determining a software/OS priority for each said thread; Dividing each said context switch interval into a predetermined number of sub-context switch intervals of equal length, attributing a desired number of fetch operations per sub-context switch interval to each said thread on the basis of said software/OS priority (Desired_Fetch_Quantum); and, each sub-context switch interval, attributing each of said first predetermined number (M) of fetch operations for each cycle to said threads on the basis of a either a first sorting algorithm or a second sorting algorithm, wherein said first sorting algorithm comprises sorting said threads according their software/OS priorities, and wherein said first sorting algorithm is a default mode, and determining an error value based on the difference between said desired number of fetch operations per sub-context switch interval and the number of fetch operations attributed per sub-context switch interval to each said thread, and in a case where said error value exceeds a predetermined value, switching to whichever of said two sorting algorithms is not presently selected for following sub-context switch intervals.