miércoles, 10 de julio de 2013

Java MultiThreading




import javax.swing.*;

public class MultiHilo extends JFrame
{
    JFrame pantalla = new JFrame("Probando multihilos");
   
    JTextArea texto1 = new JTextArea();
    JTextArea texto2 = new JTextArea();
   
    public MultiHilo()
    {
        pantalla.setLayout(null);
        pantalla.setBounds(350, 80, 650, 350);
       
        texto1.setBounds(10, 10, 300, 300);
        texto2.setBounds(340, 10, 300, 300);
       
        pantalla.add(texto1);
        pantalla.add(texto2);
       
        pantalla.setVisible(true);
       
        MiHilo hilo1 = new MiHilo("Hilo No. 1", texto1);
        MiHilo hilo2 = new MiHilo("Hilo No. 2", texto2);
       
        hilo1.start();
        hilo2.start();
       
        /*hilo1.Impresion(hilo1, texto1);
        hilo2.Impresion(hilo2, texto2);*/
    }
   
    public static void main(String []args)
    {
        MultiHilo h = new MultiHilo();
    }
   
    class MiHilo extends Thread
    {
        JTextArea area = new JTextArea();
       
        public MiHilo(String nombre, JTextArea texto)
        {
            this.setName(nombre);
           
            area = texto;
        }
       
        public void run()
        {
            try
            {
                String mensaje = "";
               
                for(int k = 1; k <= 10; k++)
                {
                    mensaje = "El " + this.getName() + " esta imprimiendo el trabajo No. " + k + "\n";
                   
                    area.setText(area.getText() + mensaje);
                   
                    //System.out.println("El " + hilo.getName() + " esta imprimiendo el trabajo No. " + k);
                    this.sleep(k * 100);
                }
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }
       
        /*public synchronized void Impresion(Thread hilo, JTextArea texto)
        {
            try
            {
                String mensaje = "";
               
                for(int k = 1; k <= 10; k++)
                {
                    mensaje = "El " + hilo.getName() + " esta imprimiendo el trabajo No. " + k + "\n";
                   
                    texto.setText(texto.getText() + mensaje);
                   
                    //System.out.println("El " + hilo.getName() + " esta imprimiendo el trabajo No. " + k);
                    hilo.sleep(k * 100);
                }
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }*/
    }
}

No hay comentarios:

Publicar un comentario