O'Reilly logo

Java Cookbook by Ian F. Darwin

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required