Pessoal ,
gostaria de criar um time out em java , ou seja,
quando executar um trecho de código quero que ele permaneça em um loop por um determinado periodo de tempo. veja bem não quero utilizar threads, usando sleep.
Nao existe outro jeito de fazer isso sem usar uma Thread pra notificar a outra de que ela deve parar de executar depois de um tempo determinado. Pra dar uma forcinha, voce talvez ache interessante a classe TimerTask.
Se você usar Thread.interrupt (que interrompe uma thread que esteja fazendo I/O) você pode ter uma surpresa desagradável - é que isso até funciona em Unix/Linux, mas não funciona direito em Windows, mesmo nos casos em que deveria funcionar. (Na verdade não funciona direito em Windows porque o próprio Windows não dá um suporte muito adequado a esse tipo de coisas.)
O melhor negócio ainda é examinar uma variável do tipo
private volatile boolean flag;
e checar o flag dentro do seu loop.
Outra forma é fazer o seguinte:
Digamos que você queira fazer algo muito simples, como ficar fazendo uma soma até completar pelo menos 100 milissegundos.
Você pode fazer algo como:
long t0 = System.currentTimeMillis();
long tempo = 100; // ms
double soma = 0.0;
while (System.currentTimeMillis() - t0 < tempo) {
soma += 0.1;
}
Talvez seja isso o que você quer.