NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo

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.

 

Pagina di Francesco Milanese (redbaron85) su Facebook   Pagina di Francesco Milanese (redbaron85) su Google Plus   Profilo di Francesco Milanese (redbaron85) su LinkedIn   Pagina di Francesco Milanese (redbaron85) su Twitter   Canale Youtube di Francesco Milanese (redbaron85ct)

Vai all'inizio della pagina