While sem parâmetro

7 respostas
macg.net

oi, estou com uma dúvida, em um livro eu vi um codigo que mostrava um while na realidade nao estava sem parametro mas tinha detro do campo true

While(true){

System.out.println(“teste”);
}

A minha dúvida é esse true, o que ele quer dizer ?

7 Respostas

ismaelsoj

Loop infinito…

Pra vc sair dele deve dar o comando break;

ismaelsoj

ismaelsoj:
Loop infinito…

Pra vc sair dele deve dar o comando break;

Ou seja, ele vai rodar enquanto verdadeiro. Como não tem jeito de vc setar isso, ele sempre vai executar, a menos que vc mande parar.

JonaTHANNM

eu não vejo alguma coisa útil nesse tipo de laço…
mas talvez o livro esteja te dando como exemplo o que vc possa fazer…

ismaelsoj

JonaTHANNM:
eu não vejo alguma coisa útil nesse tipo de laço…
mas talvez o livro esteja te dando como exemplo o que vc possa fazer…

Não sou nenhum especialista, mas pelo pouco que vi à respeito, esse tipo de laço pode ter alguma importância em programação concorrente.

JonaTHANNM

no meu caso, eu nunca precisei utilizar este tipo de laço…
mas, sempre tem uma primeira vez para tudo

drsmachado

ismaelsoj:
JonaTHANNM:
eu não vejo alguma coisa útil nesse tipo de laço…
mas talvez o livro esteja te dando como exemplo o que vc possa fazer…

Não sou nenhum especialista, mas pelo pouco que vi à respeito, esse tipo de laço pode ter alguma importância em programação concorrente.

Em computação concorrente?
Digamos que este while esteja numa thread, como ele estará sempre em true, quando a thread vai para o sleep para que outras possam usufruir dos recursos que esta vem utilizando? Ou, pior, quando a thread vai sair do sleep?
Claro, também não sou especialista, mas considerando algo básico, como leitura e gravação em disco, o gerenciador de discos do SO somente libera a escrita para um recurso quando outro já o finalizou, isto é gerenciado por tokens e, a lifetime de cada um é variável (thread de novo). Sendo assim, um while (true) em leitura de disco travaria o sistema.

Acredito que este código esteja exemplificando o mau uso de while, assim como ifs aninhados, por exemplo.

ismaelsoj

drsmachado:
ismaelsoj:
JonaTHANNM:
eu não vejo alguma coisa útil nesse tipo de laço…
mas talvez o livro esteja te dando como exemplo o que vc possa fazer…

Não sou nenhum especialista, mas pelo pouco que vi à respeito, esse tipo de laço pode ter alguma importância em programação concorrente.

Em computação concorrente?
Digamos que este while esteja numa thread, como ele estará sempre em true, quando a thread vai para o sleep para que outras possam usufruir dos recursos que esta vem utilizando? Ou, pior, quando a thread vai sair do sleep?
Claro, também não sou especialista, mas considerando algo básico, como leitura e gravação em disco, o gerenciador de discos do SO somente libera a escrita para um recurso quando outro já o finalizou, isto é gerenciado por tokens e, a lifetime de cada um é variável (thread de novo). Sendo assim, um while (true) em leitura de disco travaria o sistema.

Acredito que este código esteja exemplificando o mau uso de while, assim como ifs aninhados, por exemplo.

Dei uma pesquisada aqui na internet e vi que o uso desse laço infinito pode ser em programação multi-thread em aplicações cliente-servidor… achei um exemplo em um outro fórum de Java… http://javafree.uol.com.br/topic-881337-Fechar-portas-abertas-ambiente-Multi-Thread.html

Deve ter outras aplicações tb, mas é um bom exemplo

Criado 2 de junho de 2011
Ultima resposta 3 de jun. de 2011
Respostas 7
Participantes 4