Logo Grupo Codesi

Ciclo de Vida de las Threads

Características principales del ciclo de vida de Threads

ciclo de vida de los threads java

Un thread puede presentar cuatro estados distintos:

  1. Nuevo (New): El thread ha sido creado pero no inicializado, es decir, no se ha ejecutado todavía el método start(). Se producirá un mensaje de error (IllegalThreadStateException) si se intenta ejecutar cualquier método de la clase Thread distinto de start().
  2. Ejecutable (Runnable): El thread puede estar ejecutándose, siempre y cuando se le haya asignado un determinado tiempo de CPU. En la práctica puede no estar siendo ejecutado en un instante determinado en beneficio de otro thread.
  3. Bloqueado (Blocked o Not Runnable): El thread podría estar ejecutándose, pero hay alguna actividad interna suya que lo impide, como por ejemplo una espera producida por una operación de escritura o lectura de datos por teclado (E/S). Si un thread está en este estado, no se le asigna tiempo de CPU.
  4. . Muerto (Dead): La forma habitual de que un thread muera es finalizando el método run(). También puede llamarse al método stop() de la clase Thread, aunque dicho método es considerado “peligroso” y no se debe utilizar.
  5. ciclo de vida de los threads

Para entender prácticamente la vida de estos threads dejamos este curso de java presencial y 100% práctico.

hilos java

Ejecutar y detener el thread

Ejecución de un nuevo thread
El primer paso de un ciclo de vida de los threads es la creación de un nuevo thread no implica necesariamente que se empiece a ejecutar algo. Hace falta iniciarlo con el método start(), ya que de otro modo, cuando se intenta ejecutar cualquier método del thread -distinto del método start()- se obtiene en tiempo de ejecución el error IllegalThreadStateException. El método start() se encarga de llamar al método run() de la clase Thread. Si el nuevo thread se ha creado heredando de la clase Thread la nueva clase deberá redefinirir el método run() heredado. En el caso de utilizar una clase que implemente la interface Runnable, el método run() de la clase Thread se ocupa de llamar al método run() de la nueva. Una vez que el método start() ha sido llamado, se puede decir ya que el thread está “corriendo” (running), lo cual no quiere decir que se esté ejecutando en todo momento, pues ese thread tiene que compartir el tiempo de la CPU con los demás threads que también estén running. Por eso más bien se dice que dicha thread es runnable.

Detener un Thread temporalmente: Runnable - Not Runnable
El sistema operativo se ocupa de asignar tiempos de CPU a los distintos threads que se estén ejecutando simultáneamente. Aun en el caso de disponer de un ordenador con más de un procesador (2 ó más CPUs), el número de threads simultáneos suele siempre superar el número de CPUs, por lo que se debe repartir el tiempo de forma que parezca que todos los procesos corren a la vez (quizás más lentamente), aun cuando sólo unos pocos pueden estar ejecutándose en un instante de tiempo. Para conocer aun mas de la tecnología java dejamos este curso de java donde podrás aprender paso a paso.

Articulos Relacionados a la tecnología Java

Seguridad de Java Java para Android Applets Java Juegos en Java Web Services Java Servidor Java Java 8 Fundamentos de Java 8 Sincronizacion Java Prioridades de los Threads Java Applets
Diplomado Java

Diseño de paginas Web Grupo Codesi