Testando a prioridade do encadeamento. Como, em alguns casos, os threads de baixa prioridade são mais rápidos?

Estou tentando testar 2 threads, um com alta e outro com baixa prioridade.

De acordo com os meus resultados, por vezes, o segmento de baixa prioridade é mais rápido, como isso é possível? Eu testei os diferentes segmentos de prioridade, incrementando uma variável de clique dentro de cada thread. Eu também aumentei e diminuí o tempo de sono, mas nada.

Como eu estava testando sem programas pesados ​​rodando em segundo plano, decidi testar com um filme em HD rodando, mas ainda sem mudanças reais, as threads sempre têm a mesma velocidade.

Meu PC é um Intel i5. Estou executando o Windows 7 de 64 bits, 16 GB de RAM

Este é o código:
class clicker implements Runnable{
    long click =0;
    Thread t;
    private volatile boolean running = true;

    clicker(int p){
        t=new Thread(this);
        t.setPriority(p);
    }

    public void run(){
        while(running)
            click++;
    }

    public void stop(){
        running = false;
    }

    public void start(){
        t.start();
    }
}




class HiLoPri {
public static void main(String args[]){
    Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
    clicker hi=new clicker(Thread.NORM_PRIORITY+4);
    clicker lo=new clicker(Thread.NORM_PRIORITY-4);

    lo.start();
    hi.start();
    try {
        Thread.sleep(500);
    } catch (InterruptedException e) {

        e.printStackTrace();
    }
    lo.stop();
    hi.stop();

    try {
        hi.t.join();
        lo.t.join();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    System.out.println("LO: "+lo.click);
    System.out.println("HI: "+hi.click);
 }  
}

questionAnswers(2)

yourAnswerToTheQuestion