Back Up Next

Kontrola niti

 
niti so lahko v edem izmed štirih stanj - novo ustvarjene (narejene z new) tečejo (runnable), ustavljene (not runnable) ali mrtve (dead). Če je nit v stanju runnable, še ne pomeni, da v resnici teče, temveč da čaka na rezino procesorskega časa.
Izvajanje niti lahko kontroliramo z več metodami:
getPriority in setPriority lahko uporabimo za spremembo prioritete izvanjanja neke niti. Pri določanju prioritete je potrebno paziti, saj JVM izvaja niti po načelu "nit v stanju runnable z največjo prioriteto bo vedno izbrana za izvajanje pred nitmi z nižjo prioriteto". Ker razvrščevalnik poslov med nitmi ne preklaplja predkupno (preemptive), lahko nit z visoko prioriteto tipa 
        i=0;    
        while (true) 
            i++;

na določenih sistemih zasede ves procesorski čas.

interrupt sproži InterruptedException v neki niti. S tem lahko nit zbudimo iz stanja not runnable.
sleep povzroči, da se nit za določeno število milisekund postavi v stanje not runnable;
wait  povzroči, da nit preskoči v stanje not runnable in čaka, da jo neka druga nit zbudi z metodo notify.
yield  povzroči, da nit prepusti izvajanje neki drugi niti, ki ima vsaj tolikšno prioriteto;
join  lahko uporabimo za čakanje, da se neka nit konča;

Stanja niti

Back Up Next