Java parar thread con un solo método dentro

Lecherito
Runnable run = new Runnable() {
    @Override
    public void run() {
        functionCall();
    }

};
Thread thread = new Thread(run);
thread.start();

void functionCall() {
    for (int i=0; i<1000000; i++) System.out.println(i);
}

Este es el código que tengo, la funcion functionCall() no tengo acceso a ella (ya que está en un archivo aparte que compilo en runtime), con thread.stop() me llega a funcionar pero está deprecated y no sé las consecuencias que puede llegar a tener parar un hilo tan de sopetón.

Hay alguna forma de hacerlo más limpio?

bLero
Runnable run = new Runnable() {
        @Override
        public void run() {
            try {
                    functionCall();
                } catch(InterruptedException ex) {
                    // Aquí destruyes el otro proceso (proc.destroy();)
                }
        }

};
Thread thread = new Thread(run);
thread.start();

thread.interrupt(); // Cuando quieras finalizar

void functionCall() {
    for (int i=0; i<1000000; i++) System.out.println(i);
}
1 respuesta
Lecherito

#2 El caso es que con ese código, eclipse me dice que no se puede dar esa excepción.

Edit: Ok, metiéndole directamente Exception e, en vez de InterruptedException y haciendo un catch de InvocationTargetException al llamar al método main se me queda todo de lujo, gracias!

Usuarios habituales

  • Lecherito
  • bLero