No bro Web l’hai studiata.
Java consente di creare Thread implementando l’interfaccia Runnable o estendendo la classe Thread effettuando l’ovverriding di public void run().
Questo perché Java non supporta l’ereditarietà multipla.
I Thread sono relativi alla JVM. Non si fanno assunzioni sul sistema di scheduling sottostante. Schedulati in ordine prioritario, altrimenti, a pari priorità, FCFS.
Problema dei Selfish Threads: in un sistema che non usa Time Slicing c’è l’istruzione yield().
Un thread può essere interrotto, solleva un’interruzione su di un altro thread mediante interrupted(), ovvero InterruptedException.
Possiamo verificare lo stato di interruzione di un Thread con
interrupted() che resetta il flag.isInterrupted() che lascia il flag inalterato.Una primitiva per mettere i Thread in attesa è sleep().
Per attendere la conclusione di un thread si usa join().
I thread possono essere raggruppati in un ThreadGroup: si crea il gruppo e lo si indica nel costruttore di ciascun Thread.