Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: ktdenx en 31 Marzo 2013, 14:41 PM

Título: problema con thread
Publicado por: ktdenx en 31 Marzo 2013, 14:41 PM
Estoy haciendo un pequeño ejercicio con threats;


import java.util.*;

public class prueba1 implements Runnable{
    double time;
    public static int time1[];
    Thread pepe1;
    Thread pepe2;
    Thread pepe3;
    String a1;
    String a2;
    String a3;
    int a=500;
     
    public prueba1(){
       
        int time1[]=new int[3];
         for(int i=0;i<time1.length;i++){
         double ale1=(Math.random());
         double time=ale1*1000;
        time1[i]=(int) time;
         }
        a1="ejecutado1 en tiempo  "+time1[0];
        a2="ejecutado2 en tiempo  "+time1[1];
        a3="ejecutado3 en tiempo  "+time1[2];
       Thread pepe1=new Thread(this);
        pepe1.start();
   

    }

      public void run(){
                       try{
         pepe1.sleep(500);
         
          }catch (InterruptedException e) { }
                       System.out.println(a1);                       
                   try{
         pepe2.sleep(a);     
          }catch (InterruptedException e) { }
                   System.out.println(a2);
                   try{
         pepe3.sleep(time1[0]);       
          }catch (InterruptedException e) { }
                   System.out.println(a3);
    } 
}
public static void main(String[]args){
prueba1 prueba1=new prueba1();

        }
}


pepe1 funciona ok
pepe2 funciona ok
pero pepe3 da un error

por que no puedo pasar el valor del array al threat?
Título: Re: problema con thread
Publicado por: ThinkByYourself en 31 Marzo 2013, 23:05 PM
No sé si serviría, pero podrías probar de declarar la longitud del array en las propiedades de la clase en vez de en el método constructor, aunque el contenido lo pongas luego.

Saludos.
Título: Re: problema con thread
Publicado por: ktdenx en 1 Abril 2013, 01:12 AM
eso no funciona
Título: Re: problema con thread
Publicado por: ThinkByYourself en 1 Abril 2013, 01:23 AM
No te funciona a ti, que no sabes ni lo que te he dicho que pruebes,...
Título: Re: problema con thread
Publicado por: ThinkByYourself en 1 Abril 2013, 01:28 AM
Aquí tienes tu código. No te voy a dar consejos porque no soy quien.

Código (java) [Seleccionar]

public class prueba1 implements Runnable
{
    double time;
    int time1[] = new int[3];
    Thread pepe1;
    Thread pepe2;
    Thread pepe3;
    String a1;
    String a2;
    String a3;
    int a=500;
     
    public prueba1()
        {
         for(int i=0;i<time1.length;i++)
            {
            double ale1 = (Math.random());
            double time = ale1*1000;
            time1[i] = (int) time;
            }
       a1="ejecutado1 en tiempo  "+time1[0];
       a2="ejecutado2 en tiempo  "+time1[1];
       a3="ejecutado3 en tiempo  "+time1[2];
       Thread pepe1 = new Thread(this);
       pepe1.start();
   

    }

      public void run(){
                       try{
         pepe1.sleep(500);
         
          }catch (InterruptedException e) { }
                       System.out.println(a1);                       
                   try{
         pepe2.sleep(a);     
          }catch (InterruptedException e) { }
                   System.out.println(a2);
                   try{
         pepe3.sleep(time1[0]);       
          }catch (InterruptedException e) {System.out.println(e.getMessage()); }
                   System.out.println(a3);
    } 

public static void main(String[]args)
    {
prueba1 ayAyAyQueSiFuncionaESO = new prueba1();

        }
}


Saludoooos ;)
Título: Re: problema con thread
Publicado por: ktdenx en 1 Abril 2013, 12:35 PM
Je,je, no te piques, ya se que no se mucho de esto...por eso pregunto ....lo habia probado (mal) y no me habia funcionado. :silbar: :silbar:

Tienes razon, si funciona, pero no entiendo por que no funcionaba antes;

¿se tiene que definir siempre en las propiedades de la clase la longitud de la matriz para utilizarla en otra clase o es un caso particular?
saludos y gracias