Pergunta Threads

2 respostas
marciorodr0
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;
	}
}

Qual vai ser o resultado e por que??

Valeu!

2 Respostas

A

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.

marciorodr0

Valeu é isso mesmo!!

Criado 24 de janeiro de 2009
Ultima resposta 25 de jan. de 2009
Respostas 2
Participantes 2