lunes, 11 de marzo de 2013

Hilos en Java

El siguiente programa ejecuta un hilo (una serie de instrucciones en paralelo al programa principal) que genera números aleatorios cada segundo. Tip: Copia dos veces este código de modo que tengas dos objetos(ejemplo r1 y r2) y ejecutarlos, para ver el comportamiento en paralelo.


 Runnable r = new Runnable() {                   //Se crea un objeto que se ejecutará en segundo plano
    
  @Override
  public void run() {                     //Este método lo ejecutará UNA VEZ el hilo  
   // TODO Auto-generated method stub
   Random r = new Random();
     
   int x, y;
   x = y = 0;

                        /** Creamos un ciclo infinito 
                        *   de modo que las acciones se vuelvan 
                        *   a ejecutar indefinidamente **/

   while (true) {                
    x = r.nextInt(10);
    y = r.nextInt(10);
      
    System.out.printf("(%d, %d)\n", x, y);
      
    try {
     Thread.sleep(1000);  //Decimos al hilo que tome una pausa de 1 seg.
    } catch (Exception e) {
     // TODO: handle exception
     e.printStackTrace();
    }   
   }
   
  }
 };  
        /** El objeto 'r' se empieza a ejecutar como un hilo.
           Esta linea puede ir en la parte que querramos. **/
 new Thread( r ).start();