Testowanie priorytetu wątków. Jak w niektórych przypadkach wątki o niskim priorytecie są szybsze?
Próbuję przetestować 2 wątki, jeden z wysokim, a drugi z niskim priorytetem.
Według moich wyników czasami wątek o niskim priorytecie jest szybszy, jak to możliwe? Przetestowałem różne wątki priorytetowe, zwiększając zmienną kliknięcia wewnątrz każdego wątku. Zwiększyłem też i zmniejszyłem czas snu, ale nic.
Odkąd testowałem bez ciężkich programów działających w tle, postanowiłem przetestować film HD, ale wciąż nie ma realnych zmian, wątki są zawsze tej samej prędkości.
Mój komputer to Intel i5. Używam 64-bitowego systemu Windows 7, 16 GB pamięci RAM
To jest kod: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);
}
}