Testen der Thread-Priorität. Wie kommt es, dass Threads mit niedriger Priorität in manchen Fällen schneller sind?

Ich versuche 2 Threads zu testen, einen mit hoher und einen mit niedriger Priorität.

Nach meinen Ergebnissen ist der Thread mit niedriger Priorität manchmal schneller. Wie ist das möglich? Ich habe die verschiedenen Prioritätsthreads getestet, indem ich in jedem Thread eine Klickvariable inkrementiert habe. Ich habe auch die Schlafzeit verlängert und verkürzt, aber nichts.

Da ich im Hintergrund keine schweren Programme getestet habe, habe ich beschlossen, einen HD-Film zu testen, der ausgeführt wird, aber immer noch keine wirklichen Änderungen aufweist. Die Threads sind immer gleich schnell.

Mein PC ist ein Intel i5. Ich verwende Windows 7 64-Bit, 16 GB RAM

Dies ist der Code:
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);
 }  
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage