1. A system for managing threads in a processor having a plurality of multithreaded cores, each core having a corresponding instance of a hardware resource, comprising: a) a thread monitor that determines, for each thread of a plurality of threads, a hardware resource usage characteristic of the thread; and b) a thread scheduler that determines a hardware resource active proper subset of the multithreaded cores, and selectively assigns each of the plurality of threads to the hardware resource active proper subset based on the hardware resource usage characteristic of each thread.