Explico mi situación. Desde el Main creo y ejecuto un hilo A. Ese hilo, en su constructor crea otros hilos B y C. En el método run() de A inicio B y C con start() y posteriormente ejecuto un método void m1 () de B en el cual hay un sleep(5000). El problema que tengo es que el programa se queda esperando a que ese hilo B termine el sleep() para seguir, no sigue ejecutando el resto de instrucciones del método run() de A. El metodo run() de B está ejecutado con un while(not_acabado) yield(); , ya que es desde el método run() de A quien le dice cuando acabar.
¿Cómo tengo que hacer para que mientras B está durmiendo se siga ejecutando A?
¿Donde se ejecuta ese método m1()?. Porque si lo ejecutas en el run de A, es normal que bloquee A. El método sleep() "duerme" el hilo desde el que se ejecuta, por lo que, a simple vista, es a A a quien estás "mandando a dormir".
Hola,
Explico mi situación. Desde el Main creo y ejecuto un hilo A. Ese hilo, en su constructor crea otros hilos B y C. En el método run() de A inicio B y C con start() y posteriormente ejecuto un método void m1 () de B en el cual hay un sleep(5000). El problema que tengo es que el programa se queda esperando a que ese hilo B termine el sleep() para seguir, no sigue ejecutando el resto de instrucciones del método run() de A.
El metodo run() de B está ejecutado con un while(not_acabado) yield(); , ya que es desde el método run() de A quien le dice cuando acabar.
¿Cómo tengo que hacer para que mientras B está durmiendo se siga ejecutando A?
Gracias