Thrad...dando NullPointerException

Olá pessoal,

estou fazendo alguns testes com Thead e me deu esse erro e não estou visualizando o erro por que está dando.

Pois estou querendo rodar um processo mas aguardar o outro para dar o resultado…

Se alguem puder me ajudar agradeço…

public class Tab extends Thread {

	 int contador = 0;
	
	public synchronized void run(){
		
		for(int x=0;x<10;x++){
			
			contador +=x;
		}
		notifyAll();
	}
	
	public static void main(String [] args) {
        Tab c = new Tab();
        new Tab1().start();
       // new Tab1().start();
       // new Tab1().start();
        c.start();
     }
}


 class Tab1 extends Thread{
	
	Tab t;
	
	 
      public void run(){
		
		synchronized(t){
		try{
			System.out.println("Wait...");
			t.wait();
			
		}catch (InterruptedException e) {}
        System.out.println("Total is: " + t.contador);
		}
	}
}

erro:

Exception in thread "Thread-1" java.lang.NullPointerException
	at certificacao.licão_10_Thread.Tab1.run(Tab.java:35)

Você não inicializou a variável t da classe Tab1.

O NullPointerException só pode significar uma coisa. Que uma de suas variáveis não aponta para nenhum objeto. Há duas maneiras disso acontecer:

  1. Você cria um atributo, mas não inicializa, ou seja, você nunca da new nele. É o caso da sua variável t, do tipo Tab;
  2. Você explicitamente seta o valor de uma variável para null.

Na linha 26 da classe Tab1 você simplemente tem uma referência sem apontar para nenhum objeto.
E na linha 31 você esta tentando fazer o bloqueio de uma referência e não de um objeto, logo nessa linha haverá uma NullPointerException.

E boa sorte com Threads