Ver Mensaje Individual
  #4 (permalink)  
Antiguo 15/11/2006, 11:58
GreenEyed
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Como bien te han dicho, no hay forma de interrumpir un metodo a lo bruto, dado que el estado posterior de la JVM sería imposible de predecir, así que lo habitual es que los metodos "interrumpibles" tengan una forma de ser avisados para que dejen de trabajar o hagan una pausa de vez en cuando para comprobar un flag de si han de seguir o no.

En estos casos si que crearias un thread aparte que al darse cuenta de que el otro proceso esta tardando demasiado, cambiaria el flag o utilizaría el mecanismo que fuera para que el procesamiento no continuara.

Por ejemplo, hay metodos que quedan durmiendo mucho tiempo en un sleep(), estos se pueden "despertar" con un interrupt(), otro caso es los que se quedan bloqueados leyendo de un socket: no siempre funciona pero cerrando el socket del que leen les salta una excepcion y se "despiertan" etc... Pero no hay una solución general.