Wątki w javie

H5
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 66
0

Chcę stworzyć program działający na wielu wątkach i mam kilka pytań.
Na początek, pierwszy fragment kodu:

public class Watki {

public static void main(String[] args) {
    Thread t = new Thread(new Runnable(){
        public void run(){
            System.out.println("Jestem watkiem");
        }
    });
     t.start();

    System.out.println("Jestem glownym watkiem");
}

}

I drugi:

public class Watki implements Runnable{

public void run(){
    System.out.println("Jestem watkiem");
}

public static void main(String[] args) {
    Thread t = new Thread(new Watki());
    t.start();

    System.out.println("Jestem glownym watkiem");
}

}

Czym właściwie różnią się te dwa kody? Teoretycznie i w praktyce? W pierwszym przypadku nie implementuję klasy Runnable i tworzę nowy wątek dla Runnable. Ale czym właściwie jest to Runnable w tym miejscu?
W drugim kodzie implementuję interfejs Runnable i tworzę wątek na obiekcie klasy?
Na czym tworzę go w pierwszym kodzie?

Proszę o wyjaśnienie i z góry dziękuję za pomoc :)

Charles_Ray
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1912
2

W działaniu nie różnią się niczym. W pierwszym przypadku tworzysz „w locie” anonimową klasę implementującą interfejs Runnable, więc nie będziesz mógł jej użyć ponownie w innym miejscu. Wejdź w szczegóły konstruktorów klasy Thread i sprawdź sam :)

H5
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 66
0

Dziękuję za pomoc :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.