1. A method to dynamically allocate access bandwidth to one or more resources to the threads of a multithreaded processor comprising the steps of deriving an execution based metric for each thread, and providing access to the resource in dependence on the execution based metrics of the threads.