Underc0de

[In]Seguridad Informática => Wargames y retos => Mensaje iniciado por: ANTRAX en Octubre 23, 2014, 12:48:24 PM

Título: Desafío Java Expert #1
Publicado por: ANTRAX en Octubre 23, 2014, 12:48:24 PM
Hola a todos!
Hoy me llegó el siguiente desafío.. A ver quien se anima a participar

Dada la siguiente clase ThreadRace, con las clases internas Runner y Walker ambas implementando la interface Runnable:

1) Indique lo que se imprime en consola al ejecutar (el método estático main).
2) Justificar

(http://www.belatrixsf.com/desafio_java/img/desafio01_a.png?utm_medium=email&utm_source=Act-On+Software&utm_content=email&utm_campaign=&utm_term=Desaf%5Cu00EDo%20Java)

Saludos!
ANTRAX
Título: Re:Desafío Java Expert #1
Publicado por: rush en Octubre 23, 2014, 05:26:22 PM
No comprendo muy bien hilos, pero al momento de correr el main me salio lo siguiente:

(http://i.imgur.com/2vrR5Fm.png)

Creo que tendría que estar cambiando entre boston marathon y new york marathon, no lo entiendo muy bien.
Título: Re:Desafío Java Expert #1
Publicado por: rezyckller en Noviembre 01, 2014, 12:46:47 PM
Si mal no supongo, al sincronizar los dos hilos se ejecutara el metodo del runner y despues se quedaran esperando a que el otro libere el recurso para utilizarlo, lo cual nunca lo hacen.   ???

Saludos!
Título: Re:Desafío Java Expert #1
Publicado por: mrobles en Noviembre 01, 2014, 05:03:45 PM
os lo respondo yo xD

vamos por pasos

- Se crean 2 hilos con sus correspondientes procesos que se ejecutan simultanemaente

- si no existiera el synchronized irian a la vez y mostrarian por pantalla una algo asi como  "Runnnnnnnnerpassssingg tthrhro..." al intentar escribir por pantalla los 2 a la vez pero como lo usamos decimos el recurso al cual marcamos como ocupado para que solo un proceso pueda entrar

- Despues de una series de bucles e ir prorizando como no hay finally o notify en los synchronized no se liberan y por lo tanto el amiguete Walker  llegara al final de su carrera pero no permitira que Runner  acabe su ultimo procedimiento