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?
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.
eso no funciona
No te funciona a ti, que no sabes ni lo que te he dicho que pruebes,...
Aquí tienes tu código. No te voy a dar consejos porque no soy quien.
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 ;)
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