Как уже упоминалось в других плакатах, если вы хотите, чтобы поток некоторое время приостанавливался, используйте Thread.sleep()
.
Если вы хотите, чтобы нить что-то делал, но хотите остановить его после while, используйте что-то вроде:
class Foo implements Runnable {
private volatile boolean killed = false;
public void run() {
while (!killed) {
try { doOnce(); } catch (InterruptedException ex) { killed = true; }
}
}
public void kill() { killed = true; }
private void doOnce() throws InterruptedException { /* .. */ }
}
и из основного потока, do:
Foo foo = new Foo();
Thread thread = new Thread(foo);
thread.start();
/* when you want to stop it */
foo.kill();
thread.interrupt();