Un processus léger, une fois initialisé par un constructeur de Thread est dans l'état initial. L'invocation t.start(), qui retourne immédiatement, le fait passer dans l'état actif, dans lequel il peut être effectivement exécuté (sur un monoprocesseur, il sera exécuté en temps partagé avec les autres processus légers ; sur un multi-processeur, il peut être exécuté en parallèle avec les autres) : il exécute alors la méthode run de l'agent qu'il contrôle. Il faut noter que la méthode run n'est pas appelée explicitement dans le programme (exactement de la même façon que la méthode main d'une application).
Le processus léger passe dans l'état suspendu quand :
Le processus léger passe dans l'état terminé quand la méthode run termine.