Foro de elhacker.net

Programación => Java => Mensaje iniciado por: r7pyrred en 13 Febrero 2013, 21:01 pm



Título: THREADS porque nofunciona este code para parar un thread
Publicado por: r7pyrred en 13 Febrero 2013, 21:01 pm
QUiero para un thread desde otro y si no se puede diganme como hago un delay para
pararlo a x segundos desde fuera del thread , aqui va el code
 
Código:
import java.lang.Thread;



/**
 *
 * @author hpmini
 */
public class Threads extends Thread{
public static boolean running = true;
 public void run(){
     while(running){

System.out.println("Saludos");

 

 }}
 public static void shtdwn(){
 running = false;}
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
 Threads Threads1 = new Threads();
        Threads1.start();
        stopIt stop = new stopIt();
        stop.start();
    }
}
 class stopIt extends Thread{
 public void run(){  try{
    Thread.sleep(1000);
    Threads.shtdwn();
   
} catch (InterrumpedException iox){}
    }
 public boolean running = false;
}
   



Título: Re: THREADS porque nofunciona este code para parar un thread
Publicado por: Casidiablo en 14 Febrero 2013, 00:04 am
En realidad funciona, aunque no es la mejor manera de hacerlo. Lo único que veo mal es que pones: InterrumpedExeception; la manera correcta es InterruptedException:

Código
  1. public class Threads extends Thread {
  2.    public static boolean running = true;
  3.  
  4.    public void run() {
  5.        while (running) {
  6.            System.out.println("Saludos");
  7.        }
  8.        System.out.println("Fuck this, I'm out");
  9.    }
  10.  
  11.    public static void shtdwn() {
  12.        running = false;
  13.    }
  14.  
  15.    /**
  16.      * @param args the command line arguments
  17.      */
  18.    public static void main(String[] args) {
  19.        // TODO code application logic here
  20.        Threads Threads1 = new Threads();
  21.        Threads1.start();
  22.        stopIt stop = new stopIt();
  23.        stop.start();
  24.    }
  25. }
  26.  
  27. class stopIt extends Thread {
  28.    public void run() {
  29.        try {
  30.            Thread.sleep(1000);
  31.            Threads.shtdwn();
  32.  
  33.        } catch (InterruptedException iox) {
  34.        }
  35.    }
  36.    public boolean running = false;
  37. }


Título: Re: THREADS porque nofunciona este code para parar un thread
Publicado por: r7pyrred en 14 Febrero 2013, 00:10 am
funciono gracias hay alguna otra forma de hacerlo¿?


Título: Re: THREADS porque nofunciona este code para parar un thread
Publicado por: r7pyrred en 14 Febrero 2013, 10:34 am
de parar un thread desde otro thred¿?