Pregunta: | 66613 - AYUDA CON HILOS EN JAVA |
Autor: | Alex Carmona |
Hola que tal amigos, tengo un problema y espero que alguien me pueda ayudar: Tengo una simple interfaz grafica con la cual debo imprimir un contador cada segundo en un label y en otra label debo imprimir cada 2 segundos el contador Es decir, el primer label es un segundero, mientras que el segundo imprime cada 2 Con un boton debo pausar la impresion del segundo label, es descir el hilo debe esperar hasta que el mismo boton lo despierte cuando se presione. El problema me surge especificamente a la hora de despertar al hilo, ya que lo he logrado dormir y se que sigue vivo pero cuando lo quiero despertar desde otra funcion, me lanza la excepcion de monitor ilegal o si no simplemente no lo despierta el seudocodigo seria: Crea los labels en el frame, etc etc Credo Thread A = { void run()...... ...... //actualiza el label 1 cada segundos } Credo Thread B = { synchronized void run()...... //actualiza el label 2 cada dos segundos Pero si PAUSARHILO es verdadero dormirHilo(); } A.start(); B.start(); //Hasta este momento mis "segunderos" muestran correctamente en pantalla sus correspondientes numeros ( el primero los hace cada segundos mientras que el segundo cada dos segundos reales) //Ahora bien en actionPerformed //Detecto el botonazo si PAUSARHILO es verdadero PAUSARHILO=falso//esto hace que duerma el hio q siempre esta verificando esta bandera esta activada si no PAUSARHILO=verdadero//Aqui es el problema, por que en este momento debo despertar al hilo, pero el notify(); no lo hace o me da la excepcion. ALGUNA AYUDA SE LOS AGRADECERIA Nota: el hilo A no importa absolutamente nada, ese se debe estar ejecutando siempre cada segundo y no es necesario dormirlo ni despertarlo. |