TimeUnit.SECONDS
import static java.util.concurrent.TimeUnit.SECONDS; public class MainClass extends Thread { // This field is volatile because two different threads may access it volatile boolean keepRunning = true; public MainClass() { setDaemon(true); } public void run() { while (keepRunning) { long now = System.currentTimeMillis(); System.out.printf("%tr%n", now); try { Thread.sleep(1000); } catch (InterruptedException e) { return; } } } public void pleaseStop() { keepRunning = false; } public static void main(String[] args) { MainClass thread = new MainClass(); thread.start(); try { SECONDS.sleep(10); } catch (InterruptedException ignore) { } thread.pleaseStop(); } }