Quando eu crio uma Thread e não dou um .sleep() nela ela fica em execução pra sempre, ou ela se suspende automaticamente depois de um certo tempo?
Thread com tempo padrão?
2 Respostas
se tiver um loop nela fica indefinidamente executando (seu processador vai as alturas).
Se não tiver o loop a após a execução do start() ela simplesmente acaba.
Acho que o smota quis dizer que apos a execucao do run() a thread acaba.
Complementando um pouco mais, se voce cria uma thread, com um loop no run() (para ela nao acabar), ela fica habilitada a rodar para sempre. Isso quer dizer que ela sera submetida ao escalonador do SO. Se esse escalonador quiser tirar a thread e botar ela em dormencia (para outras threads/processos rodarem), ele pode.
Se voce der um sleep, voce esta na pratica informando ao SO que quer ser tirado da CPU por um tempo X (isso eh uma boa pratica). Nao quer dizer que apos exatos X sua thread voltara a CPU. Depende da boa vontade do SO (disponibilidade).