Cześć, uczę się Javy z książki "Java. Przewodnik dla początkujących" i jestem na rozdziale z programowania wielowątkowego. Mam taki kod programu, który przedstawia proste zastosowania programowania wielowątkowego:
package cw2;
class MyThread implements Runnable {
Thread thrd;
MyThread(String name) {
thrd = new Thread(this, name);
thrd.start();
}
public void run() {
System.out.println(thrd.getName() + " rozpoczyna działanie.");
try {
for(int count=0; count<10; count++) {
Thread.sleep(400);
System.out.println(thrd.getName() +
" jest wykonywany, wartość licznika: " + count);
}
}
catch(InterruptedException exc) {
System.out.println(thrd.getName() + " został przerwany.");
}
System.out.println(thrd.getName() + " kończy działanie.");
}
}
public class Cw2 {
public static void main(String[] args) {
System.out.println("Główny wątek rozpoczyna działanie.");
MyThread mt = new MyThread("Wątek potomny nr 1");
for(int i=0; i < 50; i++) {
System.out.print(".");
try {
Thread.sleep(100);
}
catch(InterruptedException exc) {
System.out.println("Wątek główny został przerwany.");
}
}
System.out.println("Wątek główny kończy działanie.");
}
Pytanie, o co chodzi w poniższej linijce z konstruktora MyThread:
thrd = new Thread(this, name);
Rozumiem, że do referencji o nazwie thrd jest przypisywany nowy obiekt typu Thread. W nawiasie mamy dwa argumenty: name to rozumiem, że jest nazwa, ale co robi słowo kluczowe this? Przecież to jest samo this, a jeżeli mam być szczery, to nigdy jeszcze nie widziałem takiego zastosowania tego słowa kluczowego.