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();
}
}
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
[quote=“Ironlynx”]Esse tipo de questão eh muito capiciosa!Api não diz q sim nem q não…?
Preciso estudar mais threads…[/quote]
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.