SCJP Mock Q11

7 respostas
marciolx

a) isso aí não compila nem *#@$%, tem }, ; e ) demais…
b) compilar, compila, mas na hora de rodar lança IllegalThreadStateException
c) compila, roda e juro pela minha mãe que imprime Thread 1 e Thread 2 nesta ordem
d) compila, roda, mas não boto minha mão no fogo com relação à ordem em que vai mostrar Thread 1 e Thread 2

public class GUJ11 {
	public static void main (String [] args) {
		new Thread (new Runnable() {
			public void run () {
				System.out.println ("Thread 1");
			}}).start();
		new Thread (new Runnable() {
			public void run () {
				System.out.println ("Thread 2");
			}}).start();
	}
}

7 Respostas

cariocathi

letra d

Ironlynx

c !

marciolx

c? muito provavelmente, pelo menos na minha máquina que roda ruindow$, mas não há nenhuma garantia de que isso vá ocorrer, não há nada na especificação da linguagem Java que diga que o Thread onde start foi chamado primeiro irá rodar primeiro, portanto d está correta

Ironlynx

Esse tipo de questão eh muito capiciosa!Api não diz q sim nem q não…?
Preciso estudar mais threads…

marciolx

Threads e Garbage Collection são dois dos assuntos mais cobrados e são os dois assuntos onde quase nada é garantido, é uma festa :bday:

cv1

“Ironlynx”:
Esse tipo de questão eh muito capiciosa!Api não diz q sim nem q não…?
Preciso estudar mais threads…

A especificacao da linguagem determina que o comportamento da ordem de inicializacao de Threads é indeterminado, e depende da implementação da VM e do sistema operacional. Possivelmente, numa máquina com mais de um processador, as Threads seriam executadas em paralelo, e a que caísse no processador mais livre acabaria executando primeiro. POSSIVELMENTE. :wink:

N

Na minha prova, cairam 2 questões perguntando qual a saída usando 2 ou mais Threads.

Criado 3 de dezembro de 2003
Ultima resposta 3 de dez. de 2003
Respostas 7
Participantes 5