Buenas tengo que realizar un TIME OUT, es decir, que tengo un metodo que se ejecuta un determinado tiempo si no termina su ejecucion en ese tiempo, tengo que cargarme la ejecucion y mostrar un error.
¿Como lo hago?
GRACIAS!
| |||
Realizar un TIME OUT Buenas tengo que realizar un TIME OUT, es decir, que tengo un metodo que se ejecuta un determinado tiempo si no termina su ejecucion en ese tiempo, tengo que cargarme la ejecucion y mostrar un error. ¿Como lo hago? GRACIAS! |
| |||
¿Una idea a ver si puede ser? Puedo hacerlo con thread??? Duermo el hilo con sleep antes de entrar en el metodo. Dentro de este lo pongo a start el hilo ..... No sé es que no sé como hacerlo, haber si se le ocurre a alguien. GRACIAS |
| |||
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. |