# Conceptos importantes: Subprocesos

Los programas Java se componen de subprocesos. Un subproceso es una secuencia de ejecuciones independiente dentro de un programa. Cuando se ejecuta un programa Java, pueden ejecutarse varios subprocesos a la vez, realizando diferentes acciones. Este tipo de programa recibe el nombre de programa de subprocesos múltiples.

Cada subproceso pertenece a un grupo de subprocesos. Un grupo de subprocesos es sencillamente un agrupamiento lógico de subprocesos relacionados entre sí.

El grupo de subprocesos `main` forma parte de todos los programas. Cada vez que se utilice el teclado, Java WorkShop interactuará con los subprocesos del grupo de subprocesos `main`.

Cuando se detiene un subproceso, podrá ver la pila de llamadas de que consta. Sin embargo, esta información no es del todo actual ya que corresponde al estado del subproceso en el momento en que se ejecutó por última vez.

La pila de llamadas incluye todos los métodos que han sido llamados, pero que no se han devuelto al llamador. Un método es similar a un procedimiento o a una función. Los métodos de la pila de llamadas aparecen listados en el orden en que han sido llamados. El método que estaba ejecutándose en el momento en que se detuvo el programa aparece en la parte superior de la pila.

Lección siguiente:

  Ejercicio 1: Inicio de una sesión de depuración