Threads duvida

ae pessoal executando o programa abaixo me surgiu uma duvida o primeiro codigo executa normal o segundo pq ele nao imprime 12?

import java.util.Scanner;
class MeuTrab implements Runnable{
	int z=10;
	public void run(){
		this.z+=2;		
	}
	public static void main(String args[]){
		MeuTrab m = new MeuTrab();
		Thread t = new Thread(m);
			t.start();		
		Scanner dados = new Scanner(System.in);
			System.out.println("Digite seu nome ");
				String nome = dados.next();
			System.out.println("Digite seu sobrenome ");
				String sobre = dados.next();
			System.out.println(nome  + " " + sobre);
		
		System.out.println(m.z);
	}
}

esse q ta o X da questao:não entendi pq o resultado eh 10.

import java.util.Scanner;
class MeuTrab implements Runnable{
	int z=10;
	public void run(){
		this.z+=2;		
	}
	public static void main(String args[]){
				
		Scanner dados = new Scanner(System.in);
			System.out.println("Digite seu nome ");
				String nome = dados.next();
			System.out.println("Digite seu sobrenome ");
				String sobre = dados.next();
			System.out.println(nome  + " " + sobre);
		MeuTrab m = new MeuTrab();
		Thread t = new Thread(m);
			t.start();
		System.out.println(m.z);
	}
}

outra pergunta sobre thread que tenho eh… quais as vantagens? nao vi ate o momento…
Posso realacionar Threads com esse exemplo:

" to fazendo um download onde eh uma thread em execucao mais nao tenho garantia de q esse down venha ser concluido e nisso posso ta fazendo outra coisa e ate iniciar uma nova thread ou seja um novo download que pode interferir na thread anterior(download anterior) ? "

posso visualizar dessa forma? :?:

Você não tem nenhuma garantia que a thread vai rodar antes que você tente imprimir o conteúdo de z. Você teria que dar um join() ou esperar de outra forma aquela thread ser executada, para daí então imprimir o conteúdo de z.

eh verdade eu esqueci dessa garantia, avaliei o codigo como a linha ia executar a thread! :frowning: vacilo!!
valeu!! entao ali nada eh garantido que venha ser chamando o run() pode ser que sim ou q nao ne? depende do agendador… que é o cara mais chato que ja conheci… rs

[quote=camilolopes]eh verdade eu esqueci dessa garantia, avaliei o codigo como a linha ia executar a thread! :frowning: vacilo!!
valeu!! entao ali nada eh garantido que venha ser chamando o run() pode ser que sim ou q nao ne? depende do agendador… que é o cara mais chato que ja conheci… rs[/quote]

Hehe, threads dão trabalho mesmo. Elas dependem do sistema de escalonamento do sistema operacional.

O nomezinho desse cara é escalonador.
Tenha em mente sempre uma coisa. Nao temos como saber o que o escalonador irá fazer, nunca.

]['s