Título: Cuestión de hilos/concurrencia Publicado por: kur79 en 30 Enero 2016, 18:40 pm Buenas, tengo el programa de dejo abajo y se supone que debe mostrar 5 veces la hora y entonces bloquearse el hilo pero continúa hasta el final del bucle. Sé que debe hacer eso pero no entiendo el por qué. Llevo un par de días atascado en esta cuestión.
Código
Como salida obtengo esto: Código
Acabo de empezar con temas de concurrencia y de java y ando perdido en esto. Título: Re: Cuestión de hilos/concurrencia Publicado por: El Benjo en 31 Enero 2016, 06:28 am Si te fijas bien, tu bucle for esta programado para ejecutarse 10 veces en lugar de 5. Otra cosa que deberías de mejorar. Lo que no logro entender es por qué tu hilo se sigue ejecutando sin y, además, sin lanzar de nueva cuenta la excepción que indica que se ha interrumpido. Lo que te recomiendo hacer es colocar la sentencia que imprime la hora dentro de tu try. Lamento no poder ayudarte más pues no se me da la programación multihilo en java.
Título: Re: Cuestión de hilos/concurrencia Publicado por: avesudra en 1 Febrero 2016, 20:12 pm Hola kur79 si te vas a la API de Java (https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#interrupt%28%29)del método interrupt() verás que:
If this thread is blocked in an invocation of the wait(), wait(long), or wait(long, int) methods of the Object class, or of the join(), join(long), join(long, int), sleep(long), or sleep(long, int), methods of this class, then its interrupt status will be cleared and it will receive an InterruptedException. Es decir que al estar el hilo bloqueado por una llamada a sleep, lo que haces es deshacer el bloqueo y provocar una Excepción, haciendo que el hilo vuelva a activarse para continuar con su ejecución. Por ese motivo te imprime el mensaje las 5 veces restantes. Un saludo. Título: Re: Cuestión de hilos/concurrencia Publicado por: MNicolas en 2 Febrero 2016, 10:18 am Pon un break en el catch
|