Probando la prioridad del hilo. ¿Cómo es que en algunos casos los hilos de baja prioridad son más rápidos?

Estoy tratando de probar 2 hilos, uno con alta y el otro con baja prioridad.

De acuerdo con mis resultados, a veces el hilo de baja prioridad es más rápido, ¿cómo es posible? He probado los diferentes subprocesos de prioridad incrementando una variable de clic dentro de cada subproceso. También he aumentado y disminuido el tiempo de sueño, pero nada.

Ya que estaba probando sin programas pesados ​​ejecutándose en segundo plano, decidí probar con una película HD en ejecución, pero aún sin cambios reales, los hilos siempre tienen la misma velocidad.

Mi PC es un Intel i5. Estoy ejecutando Windows 7 64bit, 16GB RAM

Este es el 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);
 }  
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta