Pergunta Threads

[code]public class Starter extends Thread {
private int x = 2;

public static void main(String[] args) throws Exception {
	new Starter().makeItSo();
}

public Starter() {
	x = 5;
	start();
}

public void makeItSo() throws Exception {
	join();
	x = x - 1;
	System.out.println(x);
}

public void run() {
	x *= 2;
}

}[/code]

Qual vai ser o resultado e por que??

Valeu!

Saída é 9:

No construtor da classe Starter a thread é iniciada e x=5
makeItSo executa um join para esperar a thread terminar de ser executada, o que acontece após a execução de run. x=10.

Após a multiplicação e execução de run em paralelo, x é subtraído c=9 e impresso na tela.

Valeu é isso mesmo!!