1. A method of managing a plurality of threads on a multi-threading processing core, comprising: providing an instruction count threshold condition that determines how many countable instructions of a thread the multi-threading processing core will execute before context switching to another one of the plurality of threads; processing a first plurality of instructions for a first one of the plurality of threads on the multi-threading processing core; determining, for each of the first plurality of instructions, whether the instruction is a countable instruction, wherein at least one of the first plurality of instructions is not a countable instruction; maintaining a count of the countable instructions; and upon determining that the instruction count threshold condition is satisfied, based on the maintained count, switching the multi-threading processing core to process a second plurality of instructions for a second one of the plurality of threads.