cómo desbloquear hilos con notify en java?
Publicado por ALEJANDRA CRIADO PEREZ (1 intervención) el 01/07/2002 04:00:48
HOLA:
ME ALEGRA SALUDARLES, SE COMUNICA CON USTEDES ALEJANDRA CRIADO, ESTUDIANTE DE INGENIERIA DE SISTEMAS DE LA UNIVERSIDAD FRANCISCO DE PAULA SANTANDER, CÚCUTA-COLOMBIA.
HE ESTADO ESTUDIANDO JAVA ESPECIALMENTE LA PARTE DE HILOS Y SU SINCRONIZACION Y REALIZADO UN PROGRAMA PARA IMPLEMENTAR EL PROBLEMA DE LOS LECTORES-ESCRITORES CON IGUAL PRIORIDAD, MI PREGUNTA ES LA SIGUIENTE:
CÓMO CONTROLAR LA SUSPENSION DE LA EJECUCION DE UN HILO CON EL METODO WAIT( ); UTILIZO EL METODO NOTIFY( ), PERO EL PROGRAMA DETIENE SU EJECUCION COMO ESPERANDO QUE UN HILO SEA DESPERTADO Y ESO NUNCA OCURRE. ANEXO UNA PARTE DEL CODIGO:
class sincronizar
{
private static int espe_escri;
private static int nlector;
private static boolean escribiendo;
public sincronizar()
{
espe_escri=0;
nlector=0;
escribiendo=false;
}
public synchronized void iniciar_lectura() throws InterruptedException
{
if(escribiendo||(espe_escri>0))
wait();
nlector++;
}
public synchronized void finalizar_lectura()
{
nlector--;
if(nlector==0)
notifyAll();
}
public synchronized void iniciar_escritura() throws InterruptedException
{
espe_escri++;
if((nlector>0)||escribiendo)
wait();
escribiendo=true;
espe_escri--;
}
public synchronized void finalizar_escritura()
{
escribien
ME ALEGRA SALUDARLES, SE COMUNICA CON USTEDES ALEJANDRA CRIADO, ESTUDIANTE DE INGENIERIA DE SISTEMAS DE LA UNIVERSIDAD FRANCISCO DE PAULA SANTANDER, CÚCUTA-COLOMBIA.
HE ESTADO ESTUDIANDO JAVA ESPECIALMENTE LA PARTE DE HILOS Y SU SINCRONIZACION Y REALIZADO UN PROGRAMA PARA IMPLEMENTAR EL PROBLEMA DE LOS LECTORES-ESCRITORES CON IGUAL PRIORIDAD, MI PREGUNTA ES LA SIGUIENTE:
CÓMO CONTROLAR LA SUSPENSION DE LA EJECUCION DE UN HILO CON EL METODO WAIT( ); UTILIZO EL METODO NOTIFY( ), PERO EL PROGRAMA DETIENE SU EJECUCION COMO ESPERANDO QUE UN HILO SEA DESPERTADO Y ESO NUNCA OCURRE. ANEXO UNA PARTE DEL CODIGO:
class sincronizar
{
private static int espe_escri;
private static int nlector;
private static boolean escribiendo;
public sincronizar()
{
espe_escri=0;
nlector=0;
escribiendo=false;
}
public synchronized void iniciar_lectura() throws InterruptedException
{
if(escribiendo||(espe_escri>0))
wait();
nlector++;
}
public synchronized void finalizar_lectura()
{
nlector--;
if(nlector==0)
notifyAll();
}
public synchronized void iniciar_escritura() throws InterruptedException
{
espe_escri++;
if((nlector>0)||escribiendo)
wait();
escribiendo=true;
espe_escri--;
}
public synchronized void finalizar_escritura()
{
escribien
Valora esta pregunta


0