Rita,

Cada objeto Java tem o que chamamos de monitor, um mecanismo que permite acesso sincronizado de v�rias threads a trechos de c�digo num m�todo desse objeto. Esse monitor controla uma fila de uma ou mais threads que est�o esperando por uma notifica��o. Para fazer com que um thread espere chamamos o m�todo wait(), para notificar uma thread que est� na fila usamos notify. Para notificar todas usamos notifyAll.

Esses m�todos s� podem ser chamados por uma thread que � dona do monitor do objeto. Para ser dona de um monitor de um objeto uma thread precisa estar em uma de 3 situa��es:

-Estar executando um m�todo sincronizado desse objeto;
-Estar num bloco sincronizado que sincroniza esse objeto;
-Para objetos do tipo Class, ao executar um m�todo est�tico sincronizado dessa classe;


Quanto aos shift existe uma excelente explica��o em:

http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#5121

Espero ter ajudado,
Flexa

At 12:07 17/1/2003, you wrote:
Qual a diferenca entre wait(), notify(), notifyAll();
 
Alguem pode me explicar :
  • << Un-signed left shift
  • >> Signed right shift
  • >>> Un-signed right shift
public class TestShift {

       public static void main(String args[]) {
               int x = 1;
               x = x >> 31;
               int y = -1;
               y = y >> 31;
               System.out.println("The ouput of x is " + x );
               System.out.println("The ouput of y is " + y );

       }
}
 

public class TestShift {

      public static void main(String args[]) {
               int x = 1;
               x = x << 31;
               int y = -1;
               y = y << 31;
               System.out.println("The output of x is " + x );
               System.out.println("The output of y is " + y );

       }
}

 

public class TestShift {

       public static void main(String args[]) {
               int x = 1;
               x = x >>> 31;
               int y = -1;
               y = y >>> 31;
               System.out.println("The output of x is " + x );
               System.out.println("The output of y is " + y );

       }
}

Responder a