|
Tutorials -
Java e Java2D
|
|
Scritto da RedBaron85
|
|
Sabato 30 Gennaio 2010 14:04 |
Thread in Java: demoni, gruppi, priorità
THREAD DEMONI
I Thread demoni (daemon) sono i Thread che rimangono, in genere, "nascosti" e che "servono" altri Thread.
L'applicazione viene chiusa automaticamente se restano in vita solo Thread demoni.
Per rendere un qualsiasi Thread demone, è sufficiente utilizzare il metodo di Thread:
setDaemon(boolean b) : void
utilizzando, come parametro b, il valore true, per trasformare in demone un Thread.
* * *
GRUPPI DI THREAD
Alcuni Thread potrebbero riguardare una particolare operazione, dunque è naturale pensare di poterli raggruppare sotto un'unica entità, in modo da effettuare operazioni in un solo colpo su di essi.
L'entità che ci consente di fare ciò è il ThreadGroup, il cui costruttore è:
ThreadGroup(String id)
dove id deve essere una stringa univoca.
I Thread creati andranno collegati a tale ThreadGroup mediante il costruttore di Thread:
Thread(ThreadGroup group, Runnable target)
Ecco alcuni metodi utili di ThreadGroup:
-
activeCount() : int; // Restituisce il numero dei Thread attivi presenti in tale gruppo.
-
interrupt() : void; // Interrompe tutti i Thread di tale gruppo.
-
enumerate(Thread[] list) : int; // Riempie l'array passato come parametro con tutti i Thread attivi.
-
getName() : String; // Restituisce l'ID univoco di tale gruppo.
* * *
PRIORITA' DEI THREAD
Per impostare la priorità di un Thread in Java si utilizza il metodo di Thread:
setPriority(int newPriority) : void
Il valore intero passato come parametro può variare nell'intervallo [1, 10], con 1 che rappresenta ovviamente la priorità minima; esistono, comunque, tre costanti predefinite:
-
MIN_PRIORITY = 1;
-
NORM_PRIORITY = 5;
-
MAX_PRIORITY = 10.
Il gestore dei Thread sceglie, dunque, il Thread con priorità maggiore; tale Thread resterà in esecuzione finchè non terminerà la propria esecuzione (anche solo temporaneamente, invocando yield(), oppure cedendo il controllo con sleep()) oppure in caso di esecuzione di un Thread a priorità maggiore divenuto, nel frattempo, eseguibile.
|
|
Ultimo aggiornamento Mercoledì 02 Novembre 2011 15:53 |
Copyright © 2012 RedBaron85.com: Informatica, CG 2D e 3D, Blender, Python, Java 2D e 3D, 3D Studio e altro ancora!. Tutti i diritti riservati.