Tema: Threads
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/05/2015, 13:27
Kritik
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años, 7 meses
Puntos: 31
Threads

Tengo un hilo de ejecución principal, el cual es el primero que se empieza a ejecutar, que ejecuta métodos de distintas clases.

Uno de esos métodos genera un nuevo hilo de ejecución (new thread) el cual accede también a métodos que ya habían sido usados por mi hilo de ejecución principal.
Incluso en un punto dado este segundo hilo ejecuta el método que genera un nuevo hilo, generando un tercer hilo de ejecución.

En ese caso en el que un hilo de ejecución depende de otro... como se gestiona esto? Aunque sea el hilo secundario el que ha generado el tercer hilo... son hilos independientes a la hora de ser tratados por la máquina virtual?



Y ya que planteado así puede llegar a generarse un bucle muy grande (no infinito pero si muy muy grande de número de hilos)... habría alguna manera de generar algo así como una pila de hilos activos con un máximo, y una cola de hilos que según se vayan terminando los de la pila, los nuevos puedan ir entrando?

Y si no... como se podrían llegar a gestionar?

Y por último una última pregunta:

En mi caso, la generación de un nuevo hilo (el tercero) es la última instrucción de este primer hilo auxiliar(el segundo hilo en realidad). En este caso... significa que hasta que no acabe ese tercero no termina el segundo, o el segundo activa el tercero y continúa la línea de ejecuciones y como no hay más el segundo muere, dejando al tercero activo? Como funcionan en este caso?

PD: En el código del nuevo hilo, tengo la línea que genera nuevos hilos comentada, y no me atrevo a activarla... aún no la he probado. Además, cada hilo auxiliar (el que no es el principal) desde el primer auxiliar lee de una BBDD, la actualiza y añade registros.

Última edición por Kritik; 19/05/2015 a las 13:43