Olá, tenho duas threads em uma classe e as duas estão pegando o mesmo numero.
ex. thread 01, pega o numero  01 e a thread 02 pega o numero 02, eu gostaria que fosse contínuo que a thread 01 pega-se o valor 01, a thread 02 pega-se o valor 02 e assim sucessivamente, fiz um método pra controlar isto porém não está dando certo.
Trecho da classe produtor.
 for (i = 1; i <= 30; i++ ) {  
    		              
                 // Dormindo em um tempo aleatório  
                 try {  
                   Thread.sleep( ( int ) ( Math.random() * 1 ) );  
                   Thread.sleep(500);
              }  
                   
                // Tratamento de exceção
                 catch( InterruptedException exception ) {  
                      System.err.println( exception.toString() );  
                }  
              
             
                num=o_Buffer.n(num);           
                              
            	o_Buffer.escreveBuffer(num);   
           
                         
              
        }  
Trecho do Método que “n” que deveria incrementar o numero para que não houve-se repetição
public synchronized int n(int num) {
		while(!acessivel) { // Não escreve no buffer se diferente  
            try {  
                wait( ); //Suspende a thread que chamou o método  
            } catch ( InterruptedException e) {  
                e.printStackTrace( );  
            }  
        }  
        acessivel = false; 
        num++;  
        acessivel = true; 
        notify( );  
        return num;
	}
        