A seguir são descritos os possíveis estados que elas podem assumir:
1. New:
A thread fica neste estado após criar sua instância e antes de invocar o método start();
2. Runnable:
Indica que ela está executando na máquina virtual Java;
3. Blocked:
Ainda está ativa, mas está à espera por algum recurso que está em uso por outra thread;
4. Waiting:
Quando neste estado, ela está à espera por tempo indeterminado pelo fato de outra thread ter executado uma determinada ação. Isto ocorre quando se invoca o método wait() ou join(), por exemplo;
5. Timed_Waiting:
Neste estado a thread está à espera de uma operação por um tempo pré-determinado. Por exemplo, esta situação ocorre ao invocar métodos como Thread.sleep(sleeptime), wait(timeout) ou join(timeout); e
6. Terminated:
Este estado sinaliza que o método run() finalizou.