Sleeping for a While

Problem

You need to sleep for a while.

Solution

Use Thread.sleep( ).

Discussion

You can sleep for any period of time from one millisecond up to the lifetime of your computer. As I write this, for example, I have a chicken on the barbecue. My wife has instructed me (I’m as helpless with anything in the kitchen beyond spaghetti as she is with anything computish made since the days of MS-DOS Word Perfect) to check it every five minutes. Since I’m busy writing, time tends to fly. So, I needed a reminder service, and came up with this in a jiffy:

// Reminder.java 
while (true) { 
    System.out.println(new Date(  ) + "\007"); 
    Thread.sleep(5*60*1000); 
}

The 007 is not a throwback to the Cold War espionage thriller genre, but the ASCII character for a bell code, or beep. Had I written it as a windowed application using a frame, I could have called Toolkit.beep( ) instead, and by toggling the state of setVisible( ), a pop-up would appear every five minutes.

With a bit more work, you could have a series of events, and wait until their due times, making a sort of mini-scheduler entirely in Java. In fact, we’ll do that in Section 6.15.

Get Java Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.