Thread com tempo padrão?

2 respostas
P

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?

2 Respostas

smota

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.

T

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).

Criado 26 de março de 2004
Ultima resposta 26 de mar. de 2004
Respostas 2
Participantes 3