Recipe 6.13 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 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. It's probably preferable to use \b for this, but then I couldn't make that 007 joke. Had I written the program 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 minischeduler entirely in Java. In fact, we'll do that in Recipe 6.14.



Java Cookbook
Java Cookbook, Second Edition
ISBN: 0596007019
EAN: 2147483647
Year: 2003
Pages: 409
Authors: Ian F Darwin

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net