1. A method of processing multiple threads of instructions in a data processor, the method including: (a) interleaving instructions from a first thread of instructions with instructions from at least one additional thread of instructions according to a priority rule between the first thread of instructions and the at least one additional thread of instructions; and (b) inserting a randomization into the interleaving step while preserving the priority rule.