Učím sa Javu, momentálne som v kapitole viacvláknové programovanie. Mám nasedujúci kód:
Kód:
class MojeVlakno implements Runnable { //vytvorenie nového vlákna pomocou inplementovania rozhrania Runnable
Thread v;
MojeVlakno() {
v = new Thread(this, "Moje vlákno");
v.start();
}
public void run() {
System.out.println("Dceriné vlákno spustené");
System.out.println("Dceriné vlakno zastvené");
}
}
class MojeVlakno2 extends Thread { //vytvorenie nového vlákno odvodením od triedy Thread
MojeVlakno2(){
super("Moje vlákno 2");
start();
}
public void run() {
System.out.println("Dceriné vlákno 2 spustené");
System.out.println("Dceriné vlakno 2 zastvené");
}
}
public class Demo {
public static void main(String[] args) {
new MojeVlakno();
System.out.println("Hlavné vlákno spustené");
System.out.println("Hlavné vlákno zastavené");
new MojeVlakno2();
}
}
Čomu nechápem je výstup y programu. Spustím program a výstup vzerá napr. takto:
Hlavné vlákno spustené
Hlavné vlákno zastavené
Dceriné vlákno spustené
Dceriné vlakno zastvené
Dceriné vlákno 2 spustené
Dceriné vlakno 2 zastvenéSpustím ho znovu a výstup už vyzerá napr. takto:
Dceriné vlákno spustené
Hlavné vlákno spustené
Hlavné vlákno zastavené
Dceriné vlakno zastvené
Dceriné vlákno 2 spustené
Dceriné vlakno 2 zastvenéatď.dostal som uź rôzne výstupz. Prečo sa mení poradie spúšťania a zastavovania vlákien?