# Ejercicio 3: Examen de subprocesos

En este ejercicio, visualizará los grupos de subprocesos, subprocesos y marcos de pila que forman el proyecto Blink. También aprenderá a realizar el seguimiento de los cambios de los valores de las variables a medida que progresa el programa.

1. Seleccione "Depurar -> Subprocesos/Pila".
   Aparece la ventana "Subprocesos/Pila" de Java Development Environment.

   El proyecto Blink incluye tres grupos de subprocesos, cada uno de los cuales está acompañado por la representación :

   - `main`--incluye los subprocesos que se ejecutan en Java WorkShop.
   - `sun.applet.AppletViewer.main`--incluye los subprocesos que se ejecutan en el visualizador de applets.
   - `file:/directorio-instalación/jws/Blink/-threadGroup`--contiene subprocesos directamente relacionados con el proyecto Blink.
   El grupo de subprocesos `sun.applet.AppletViewer.main` contiene tres subprocesos; y el grupo de subprocesos de los archivos de `Blink` contiene dos.
2. Mire en `"AWT-EventQueue-0"`, el primer subproceso del grupo de subprocesos `sun.applet.AppletViewer.main.`

   Verá lo siguiente:

   - El nombre del subproceso es `java.awt.EventDispatch`
   - El estado del subproceso es "punto de interrupción".
   - La prioridad para ejecutar el subproceso es la prioridad 5. El subproceso con la prioridad más alta se ejecuta primero.

   La representación que acompaña a un subproceso es una clave adicional del estado del subproceso. Las representaciones que pueden aparecer son las siguientes:
   El subproceso está suspendido.
   El subproceso está parado en un punto de interrupción.
   El estado del subproceso no se puede determinar.
   El subproceso es un zombie.
   El subproceso se está ejecutando.
   El subproceso está dormido.
   En subproceso está esperando en una variable condicional.

3. Observe la pila de llamadas que forman la clase de subprocesos.
   La pila de subprocesos incluye todos los métodos que se han llamado pero no devuelto.`Blink.paint`, que se estaba ejecutando cuando se detuvo el proceso, está en la parte superior de la pila. El marco de pila está resaltado, de modo que puede saber fácilmente dónde se detuvo el programa. Cada marco de pila está acompañado por la representación correspondiente.
4. Abra el marco de pila `Blink.paint` pulsando en el signo + junto a la representación .
   Java Development Environment muestra las variables y sus valores actuales locales en `Blink.paint`. Mire la variable `word`. Observe el valor de la variable `word`.
5. Pulse en el botón "Ir" en la barra de herramientas de edición/depuración.
   El programa ejecuta el bucle y de detiene cuando llega al punto de interrupción por segunda vez. La pantalla de subprocesos/pila se actualiza, y el valor de la variable `word` cambia. El valor pasa a "Java Development Environment es estupendo :-)".
6. Abra el objeto `this` pulsando en el signo + junto aa la representación .
   Java Development Environment expande el objeto para mostrar todas las variables contenidas en el objeto. Puede repetir esta acción en los objetos anidados (por ejemplo, `peer`).
7. Pulse en el signo - a la izquierda del objeto `this.`
   Java Development Environment contrae el objeto.

Siguiente lección:

  Ejercicio 4: Seguimiento de un método