No ... non hai ancora capito:Originariamente inviato da Erwittsy
In questo caso cosa succede?
Prima fai partire il thread con start(). start() si limita solo a mettere il thread nello stato di "runnable" (che non vuol dire che viene immediatamente invocato il run()!!!) e ritorna praticamente subito. Il nuovo thread passerà poi allo stato di "running" in base alle decisioni dello scheduler.codice:.... Thread a = new Thread(.....); a.start(); a.join(); ....
Quindi si continua di seguito nel thread corrente. Se devi fare qualcosa tale per cui hai bisogno che l'altro thread finisca, allora puoi attendere la terminazione di quel thread appunto con join().
join() blocca il thread corrente finché il thread su cui l'hai invocato termina.
Più chiaro ora .... o ancora no?

Rispondi quotando