El tipo synchronized

Javi
10 de Mayo del 2004
Hola!Alguien me puede aclarar un poco para que sirve una funcion sincronizada?Por lo que entiendo si 200 personas ejecutan a la vez el mismo codigo hasta que no termina la primera, la segunda no puede comenzar. Es asi? Gracias!!!

CherLUX
10 de Mayo del 2004
Estimado Javi:

Mira el synchronized se usa en la programcion concurrente, cuando tienes varios hilos y la ejecucion de un metodo es critico. (Recuerda el problema basico del Productor Consumidor) Y si, Suponte que el hilo h1 entro al monitor (Esto es al metodo synchronized) y el hilo h2 lo quiere ser tambien este se bloquea hasta que se libera.
Asi que si por ejemplo tienes un ciclo while( true ) el hilo 2 nunca termina el metodo y nunca sede el monitor por lo que el hilo 2 se queda esperando indefinidamente. Lo puedes evitar con el metodo yield() asi el hilo h2 deja el monitor y deja entrar a otro hilo. Asi en conclucion la respuesta es SI.

Si tienes algun problema con tu codigo en especifico o con la ejecucion escribeme.

Atte. CHERLUX

Hasta la victoria siempre
Patria o Muerte
VENCEREMOS!