Reprezentacja wątków w języku Java
• Wątek reprezentowany jest przez klasę będącą potomkiem klasy Thread, której najważniejsze metody to: o public Thread()-konstruktor obiektu reprezentującego wątek
o public Thread(String name)-konstruktor pozwalający nadad nazwę tworzonemu wątkowi o public void run()-definiuje operacje realizowane w ramach wątku o public void start()-wywołuje metodę run()
Definiowanie wątków za pomocą obiektów klasy Threadi klas pochodnych
class Gwiazdka extends Thread { public voidrun(){
for (int i = 0; i < 10;i++) {
System.out.print("*"); try {
sleep(lOOO);
}
catch(lnterruptedException e) {
}
}
}
}
dass Plus extends Thread { public void run() {
for (int i = 0; i < 10;i++) {
System.out.print("+"); try {
sleep(lOOO);
}
catch(lnterruptedException e) {
}
}
}
}
public class TworzenieWatkowl {
public static void main(String () args) {
Gwiazdka g = new Gwiazdka();
Plus p = new Plus();
gstart();
p.start();
System.out.print("KONIEC");
}
}
Wyniki działania programu KONIEC*++**++*+*+*+*+*+**+
Definicja metody sleep (w klasie Thread):
public static void sleepflong millis) throws lnterruptedException
Definiowanie wątku za pomocą klasy implementującej interfejs Runnable
•Obliczenia realizowane przez wątek opisane są w klasie implementującej interfejs Runnable •Interfejs Runnable definiuje nagłówek jednej metody:
public void run() - metoda ta definiuje operacje realizowane w ramach wątku.
•Przedstawiony mechanizm tworzenia wątków należy stosować wtedy, gdy klasa reprezentująca wątek jest potomkiem klasy innej niż Thread (np. klasy Applet) i -z uwagi na jednokrotny charakter dziedziczenia w języku Java -nie może dziedziczyć cech klasy Thread.
•Obiekt klasy implementującej interfejs Runnable należy przekazać jako parametr konstruktora w trakcie tworzenia obiektu typu Thread. Uruchomienie wątku następuje za pomocą metody start(), która wywołuje metodę run().