Wątki w javie

H5
  • Rejestracja:ponad 6 lat
  • Ostatnio:prawie 4 lata
  • 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:około 17 lat
  • Ostatnio:około 3 godziny
  • Postów:1881
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 :)


”Engineering is easy. People are hard.” Bill Coughran
H5
  • Rejestracja:ponad 6 lat
  • Ostatnio:prawie 4 lata
  • 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.